有什么方法可以让WCF在返回时对整个类进行序列化?我真的必须向每个属性添加DataMember吗?
最佳答案
从.NET 3.5 SP1开始,您不再需要这样做。
如果没有任何[DataContract]
和[DataMember]
属性,则DataContractSerializer类的行为将类似于旧的XmlSerializer:它将序列化该类中列出的所有公共读/写属性。
但是,您在此过程中确实会丢失一些东西:
由于您没有[DataMember]
属性,因此无法再定义字段的顺序-它们将按照出现的顺序进行序列化
您不能省略公共财产(因为在所有其他属性/字段上都需要[DataMember]
)
您不能将属性定义为Required
(将再次在[DataMember]
属性上)
您的类现在需要有一个公共的,无参数的构造函数(通常不需要数据协定)
阅读Pluralsight的Aaron Skonnard的all about it in detail。