gpt4 book ai didi

c# - 使用 WCF ResponseFormat = WebMessageFormat.Json 时忽略类的属性

转载 作者:太空狗 更新时间:2023-10-30 00:16:16 25 4
gpt4 key购买 nike

我将 WCF 用于使用这种格式的 JSON 服务:

[OperationContract]
[ServiceKnownType(typeof(ComplexResult))]
[WebInvoke(
Method = "GET",
BodyStyle = WebMessageBodyStyle.Bare,
ResponseFormat = WebMessageFormat.Json)]
MyClass MyFunction(string myParams);

这很好用,但它有一个限制。我不能忽略我正在序列化为 JSON 的类的属性。如果我使用 JavaScriptSerializer 类,那么我可以将 [ScriptIgnore] 属性放在我想忽略的属性上,它们不会在 JSON 中序列化,但这不适用于上述方法。

有没有办法排除使用 ResponseFormat Json 方法序列化为 JSON 的类的属性?

最佳答案

WCF 默认使用 DataContractJsonSerializer 来序列化对象。根据 MyClass 的定义方式,您可以使用不同的属性来防止成员被序列化:

  • 如果 MyClass 没有任何属性(即,它是“POCO”类型),您可以在不想序列化的成员中使用 [IgnoreDataMember] 属性
  • 如果 MyClass 用 [Serializable] 装饰,您可以在这些成员中使用 [NotSerialized] 属性
  • 如果 MyClass 用 [DataContract] 修饰,那么你只需要不添加 [DataMember] 给你不需要的成员想要连载。

关于c# - 使用 WCF ResponseFormat = WebMessageFormat.Json 时忽略类的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7815885/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com