WCF - 是否在.NET 3.5 SP1中使用[DataContract]?

use*_*190 3 wcf

我正在使用WCF .NET 3.5 SP1,并且已经读过,不必使用[DataMember],[DataConract]和/或[Serializable]等装饰它们的实体/集合?什么是最好的方式?你们都遇到了什么?

我在3.5 SP1.

Eug*_*ota 6

请参阅使用数据合同.

您创建的新复杂类型必须具有为其序列化的数据协定.默认情况下, DataContractSerializer推断数据协定并序列化所有公开可见的类型.所有公共读/写属性和类型的字段都是序列化的.您可以使用以下命令从序列化中选择退出成员 IgnoreDataMemberAttribute.您还可以使用DataContractAttributeDataMemberAttribute属性显式创建数据协定.这通常通过将 DataContractAttribute属性应用于类型来完成.此属性可以应用于类,结构和枚举.然后,DataMemberAttribute必须将该属性应用于数据协定类型的每个成员,以指示它是数据成员,即应该序列化.有关更多信息,请参阅可序列化类型.

就像@Terry所说的那样,主动声明要暴露哪些属性可能更好.通过这种方式,您可以在将来通过基类添加公共属性时无意中公开字段来证明您的代码.