【发布时间】:2010-03-30 19:44:11
【问题描述】:
我有几个类,例如 Order、Customer 等。这些类用于保存数据,仅此而已。我希望将来能够在其他项目中重用这些类,但由于某种我不太明白的原因,WCF 迫使我用 [DataMember] 属性装饰数据成员,迫使我引用我的 WCF 管道永远不会在其他项目中使用。
我认为 WCF 允许您采用任何可序列化的类并将其用作内容类型。我理解正确吗?
【问题讨论】:
标签: wcf
我有几个类,例如 Order、Customer 等。这些类用于保存数据,仅此而已。我希望将来能够在其他项目中重用这些类,但由于某种我不太明白的原因,WCF 迫使我用 [DataMember] 属性装饰数据成员,迫使我引用我的 WCF 管道永远不会在其他项目中使用。
我认为 WCF 允许您采用任何可序列化的类并将其用作内容类型。我理解正确吗?
【问题讨论】:
标签: wcf
是的,在 .NET 3.5 SP1 中,WCF DataContractSerializer 现在将像 XmlSerializer 一样序列化任何 POCO 类 - 任何公共属性都将被序列化。
我不确定这是否是一件好事 - WCF 的支柱之一是明确的,以便清楚地说明您的意图。我个人认为用 [DataContract] 标记你的类以及你想用 [DataMember] 显式序列化的字段和属性是一件好事 - 它可以更清楚地了解正在发生的事情,并且不会伤害你的 POCO 类完全没有。
顺便说一句:您不必参考 任何“WCF 管道”来执行此操作 - 这些属性存在于 System.Runtime.Serialization - 一个非常通用的系统组件.....
【讨论】: