我有几个类,如Order,Customer等。这些类用于保存数据,仅此而已。我希望将来能够在其他项目中重用这些类,但由于某些原因我不太明白,WCF迫使我用[DataMember]属性装饰数据成员,迫使我引用WCF管道,我绝不会在其他项目中使用。
我认为WCF允许您使用任何可序列化的类并将其用作内容类型。我能正确理解吗?
答案 0 :(得分:1)
是的,使用.NET 3.5 SP1,WCF DataContractSerializer现在将按照与XmlSerializer相同的方式序列化任何POCO类 - 任何公共属性都将被序列化。
我不确定这是否是一件好事 - WCF的一个支柱是明确的,以便明确说明你的意图。我个人认为使用[DataContract]标记您的类以及您想要使用[DataMember]明确序列化的字段和属性是一件好事 - 它会更清楚地显示正在发生的事情,并且它不会损害您的POCO类一点都不。
顺便说一句:您不必参考任何“WCF管道”来执行此操作 - 这些属性存在于System.Runtime.Serialization
中 - 一个非常通用的系统程序集..... < / p>