【问题标题】:using or not using the KnownType attribute between servers?在服务器之间使用或不使用 KnownType 属性?
【发布时间】:2012-02-12 07:32:33
【问题描述】:

我有一个关于在服务器/客户端应用程序之间使用 WCF KnownType 属性的问题,
如您所知,使用 wcf 在服务器和客户端之间传输对象有不同的方式。

  1. 使用已知类型。
  2. 使用 DataContractResolver。
  3. 使用 POCO 传输 knownType 对象的数据(最佳实践)。

(3) 传递数据的最佳方式是什么?它是序列化的(xml / json / bufferProtocol)字符串吗?作为一个类本身(然后我们再次获得 knowntype)?

【问题讨论】:

  • 我认为所有三个选项仍然涉及序列化为某种 XML
  • 通过使用 wcf (SOAP),消息是一个 xml。还可以在 JSON 或缓冲区协议中传输数据(POCO)。我只是想知道它好吗? (我不是在问 REST)

标签: c# wcf serialization known-types


【解决方案1】:

我通常使用 DataContractSerializer 使用 POCO 对象。在这种方法下,DTO 存储在一个单独的程序集中,WCF 对话的两端都可以访问。

仅当 DTO 涉及继承时,我才需要显式使用 KnownTypes。例如,如果服务契约指定了一个基类,但我实际上返回了一个派生类,则需要使用 KnownType 配置显式声明继承。

这在我的使用中很少见,通常不需要。

使用 DataContract 属性装饰您的 POCO 对象。用 DataMember 属性装饰属性,其余的由框架处理。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-11
    • 2013-07-31
    • 1970-01-01
    • 2011-07-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多