DataContracts和DataMembers

zac*_*ary 13 wcf datacontractserializer

有没有办法告诉WCF在返回时序列化整个类?我是否真的必须将DataMember添加到每个属性?

mar*_*c_s 25

从.NET 3.5 SP1开始,您不必再这样做了.

如果你没有任何[DataContract][DataMember]属性,DataContractSerializer的类会像老XmlSerializer的:它会序列化是在类中列出的所有公共读/写性能.

但是你在这个过程中失去了一些东西:

  • 由于您没有[DataMember]属性,因此无法再定义字段的顺序 - 它们将按照外观的顺序进行序列化

  • 你不能省略公共财产(因为这需要[DataMember]在所有其他财产/领域)

  • 你不能定义一个属性Required(将[DataMember]再次在属性上)

  • 你的类现在需要一个公共的,无参数的构造函数(通常不需要数据契约)

在Pluralsight的Aaron Skonnard 详细阅读所有相关内容.

  • @razlebe:这是微软屈服于大批懒惰程序员的投诉:-)(至少Juval Lowy说的那样) (2认同)