我正在使用一个暴露一些对象的类库。这些对象具有一些属性,可以保存客户端所需的数据。我想创建一个WCF服务,将对象返回给我的客户端,但我无法更新类库以添加DataContract和DataMember属性。暴露这些物体的最简单方法是什么?
答案 0 :(得分:8)
您可以使用DataContractSurrogate。
...您可以应用DataContract 属性为Person类,但是 这并不总是可行的。对于 例如,Person类可以 在单独的程序集中定义 你无法控制。
鉴于这种限制,一种方法 序列化Person类是为了 用另一个类代替它 标有DataContractAttribute 并将必要的数据复制到 新课。目标是制作 Person类显示为 DataContract到 DataContractSerializer的。请注意这一点 是序列化非数据的一种方法 合同类。 ...
答案 1 :(得分:0)
如果无法在对象上设置[DataContract]和[DataMember]属性,则必须找到使用XmlSerializer公开它们的方法。
您可以通过在服务合同或单个OperationContract上指定[XmlSerializerFormat]属性来定义服务或操作以使用XmlSerializer。
这有帮助吗?
马克