4

我正在使用一个公开一些对象的类库。这些对象有几个属性来保存我的客户需要的数据。我想创建一个将对象返回给我的客户的 WCF 服务,但我无法更新类库以添加 DataContract 和 DataMember 属性。暴露这些对象的最简单方法是什么?

4

2 回答 2

9

您可以使用DataContractSurrogate

...您可以将 DataContract 属性应用于 Person 类,但这并不总是可行的。例如,可以在您无法控制的单独程序集中定义 Person 类。

鉴于此限制,序列化 Person 类的一种方法是将其替换为另一个标有 DataContractAttribute 的类,并将必要的数据复制到新类。目标是使 Person 类显示为 DataContractSerializer 的 DataContract。请注意,这是序列化非数据协定类的一种方法。...

于 2009-04-27T18:43:32.973 回答
0

如果您无法在对象上设置 [DataContract] 和 [DataMember] 属性,则必须找到一种使用 XmlSerializer 公开它们的方法。

您可以通过在服务合同或单独的 OperationContract 上指定 [XmlSerializerFormat] 属性来定义服务或操作以使用 XmlSerializer。

这可能有帮助吗?

马克

于 2009-04-27T18:44:24.780 回答