【问题标题】:Expose object from class library using WCF使用 WCF 从类库中公开对象
【发布时间】:2009-04-27 18:38:29
【问题描述】:

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

【问题讨论】:

    标签: wcf datacontract


    【解决方案1】:

    您可以使用DataContractSurrogate。

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

    鉴于此限制,一种方法可以 序列化 Person 类是为了 用另一个类替换它 用 DataContractAttribute 标记 并将必要的数据复制到 新班级。目标是使 Person 类显示为 数据合同 数据合同序列化器。请注意,这 是序列化非数据的一种方法 合同类。 ...

    【讨论】:

    【解决方案2】:

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

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

    这可能有帮助吗?

    马克

    【讨论】:

    • 我认为布赖恩的回答更切中要害。我无法控制类库对象 - 他的回答更接近 MSDN 的建议。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多