我正在从事 WCF 服务。我的所有类都已使用 [Serializable] 属性进行序列化,但由于“k__BackingField”属性命名问题,我使用了 DataContract 和 DataMember 属性。
所以我可以同时使用这两个属性,如下所示:
[Serializable]
[DataContract]
public class User
{
[DataMember]
public string Name { get; set; }
[DataMember]
public int UserID { get; set; }
}
它是否正确?
我在这里也得到了类似的解决方案。C# 自动属性反序列化 JSON https://stackoverflow.com/questions/945585/c-automatic-property-deserialization-of-json/2162000#2162000
Serialized 和 DataContract(不是对比?) https://stackoverflow.com/questions/4249334/serializable-and-datacontract-not-versus/4249405#4249405
我在MSDN上找到了一篇文章,根据这个我们可以同时使用DataContract和Serialized这两个属性。
使用 [Serialized],所有字段都将成为数据协定的一部分(除非它们被标记为 [NonSerialized])。对于 [DataContract],仅包含标有 [DataMember] 的成员。请注意,如果类型同时具有 [DataContract] 和 [Serializable] 属性,它将使用 [DataContract] 映射
http://msdn.microsoft.com/en-us/magazine/cc163569.aspx http://msdn.microsoft.com/en-us/magazine/cc163569.aspx
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)