首页 文章

我可以一起使用DataContract和Serializable吗?

提问于
浏览
25

我正在研究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?)

2 回答

  • 1

    我在MSDN上发现了一篇文章,我们可以同时使用属性DataContract和Serializable .

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

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

  • 40

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

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

相关问题