在服务器之间使用或不使用KnownType属性?

时间:2012-01-17 13:41:16

标签: c# wcf serialization known-types

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

  1. 使用knowntype。
  2. 使用DataContractResolver。
  3. 使用POCO传输knownType对象的数据(最佳实践)。
  4. (3)传递数据的最佳方法是什么?它是一个序列化(xml / json / bufferProtocol)字符串?作为一个自我的类(然后我们再次获得知识类型)?

1 个答案:

答案 0 :(得分:0)

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

只有在DTO中涉及继承时,才需要明确使用KnownTypes。例如,如果服务契约指定了一个基类,但实际上我正在返回派生类,那么我需要使用KnownType配置显式地声明继承。

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

使用DataContract属性装饰您的POCO对象。使用DataMember属性装饰属性,框架将负责其余的工作。