我构建了许多WCF服务作为应用程序的一部分。直到最近,大多数用作服务中的许多操作的参数的类没有将DataContract或DataMember属性应用于它们。为什么WCF突然需要DataContractAttributes?
现在,我已经连续做了一些更改,突然之间WCF抱怨说他无法序列化我的类。
有没有人知道如果在配置甚至在ServiceContract,OperationContract等的任何变化可以导致WCF变得挑剔有关它可以序列化的类?
我宁愿不需要这些类中的属性(它们应该是纯C#类尽可能)。另外值得注意的是,如果我在源代码控制中返回到以前的版本,WCF将回到“正常”状态,所以我相信它不是机器/环境的东西。
从.NET 3.5 SP1开始,WCF就不再需要在单个字段上使用'[DataMember]'来进行序列化。但是,如果你的班级在某处使用了“[DataMember]”,那么你需要在任何地方使用它。但据我所知,这种行为在.NET 4.5中并没有改变(例如,如果你愿意,你应该很好*没有* [DataMember]) –