有什么方法可以让WCF在返回时对整个类进行序列化?我真的必须向每个属性添加DataMember吗?

最佳答案

从.NET 3.5 SP1开始,您不再需要这样做。

如果没有任何[DataContract][DataMember]属性,则DataContractSerializer类的行为将类似于旧的XmlSerializer:它将序列化该类中列出的所有公共读/写属性。

但是,您在此过程中确实会丢失一些东西:


由于您没有[DataMember]属性,因此无法再定义字段的顺序-它们将按照出现的顺序进行序列化
您不能省略公共财产(因为在所有其他属性/字段上都需要[DataMember]
您不能将属性定义为Required(将再次在[DataMember]属性上)
您的类现在需要有一个公共的,无参数的构造函数(通常不需要数据协定)


阅读Pluralsight的Aaron Skonnard的all about it in detail

10-08 10:59