【发布时间】:2009-04-27 18:38:29
【问题描述】:
我正在使用一个公开一些对象的类库。这些对象有几个属性来保存我的客户需要的数据。我想创建一个 WCF 服务,将对象返回给我的客户,但我无法更新类库以添加 DataContract 和 DataMember 属性。暴露这些对象的最简单方法是什么?
【问题讨论】:
标签: wcf datacontract
我正在使用一个公开一些对象的类库。这些对象有几个属性来保存我的客户需要的数据。我想创建一个 WCF 服务,将对象返回给我的客户,但我无法更新类库以添加 DataContract 和 DataMember 属性。暴露这些对象的最简单方法是什么?
【问题讨论】:
标签: wcf datacontract
您可以使用DataContractSurrogate。
...您可以应用 DataContract 属性到 Person 类,但是 这并不总是可能的。为了 例如,Person 类可以是 在单独的程序集中定义 这是你无法控制的。
鉴于此限制,一种方法可以 序列化 Person 类是为了 用另一个类替换它 用 DataContractAttribute 标记 并将必要的数据复制到 新班级。目标是使 Person 类显示为 数据合同 数据合同序列化器。请注意,这 是序列化非数据的一种方法 合同类。 ...
【讨论】:
如果您无法在对象上设置 [DataContract] 和 [DataMember] 属性,则必须找到一种使用 XmlSerializer 公开它们的方法。
您可以通过在服务合同或单独的 OperationContract 上指定 [XmlSerializerFormat] 属性来定义服务或操作以使用 XmlSerializer。
这可能有帮助吗?
马克
【讨论】: