【问题标题】:Can I use DataContract and Serializable together?我可以同时使用 DataContract 和 Serializable 吗?
【发布时间】:2011-07-21 06:47:47
【问题描述】:

我正在开发 WCF 服务。我的所有类都已经使用 [Serializable] 属性进行序列化,但由于“k__BackingField”属性命名问题,我使用了 DataContract 和 DataMember 属性。 所以我可以像下面这样一起使用这两个属性吗:

[Serializable]
[DataContract]
public class User
{

  [DataMember]
  public string Name { get; set; }

  [DataMember]
  public int UserID { get; set; }
}

这对吗?

我在这里也得到了类似的解决方案。 C# automatic property deserialization of JSON

Serializable and DataContract (not versus?)

【问题讨论】:

    标签: wcf datacontract serializable


    【解决方案1】:

    我在MSDN上找到了一篇文章,据此我们可以同时使用属性DataContract和Serializable。

    使用 [Serializable],所有字段都成为数据协定的一部分(除非它们被标记为 [NonSerialized])。使用 [DataContract],仅包含标有 [DataMember] 的成员。请注意,如果一个类型同时具有 [DataContract] 和 [Serializable] 属性,它将使用 [DataContract] 映射

    http://msdn.microsoft.com/en-us/magazine/cc163569.aspx

    【讨论】:

      【解决方案2】:

      如果问题在于命名,为什么不使用

      [XmlElement(ElementName = "Name")]
      public string Name { get; set; } 
      

      【讨论】:

        猜你喜欢
        • 2017-06-23
        • 1970-01-01
        • 2015-05-19
        • 2019-05-21
        • 2021-09-05
        • 2014-04-08
        • 2020-06-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多