使用WCF从类库中公开对象

时间:2009-04-27 18:38:29

标签: wcf datacontract

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

2 个答案:

答案 0 :(得分:8)

您可以使用DataContractSurrogate

  

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

     

鉴于这种限制,一种方法   序列化Person类是为了   用另一个类代替它   标有DataContractAttribute   并将必要的数据复制到   新课。目标是制作   Person类显示为   DataContract到   DataContractSerializer的。请注意这一点   是序列化非数据的一种方法   合同类。 ...

答案 1 :(得分:0)

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

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

这有帮助吗?

马克