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

本文关键字:KnownType 属性 服务器 之间 | 更新日期: 2023-09-27 18:20:45

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

  1. 使用knowntype
  2. 使用DataContractResolver
  3. 使用POCO传输knowType对象的数据(最佳实践)

(3)传递数据的最佳方式是什么?它是序列化的(xml/json/bufferProtocol)字符串吗?作为一个单独的班级(然后我们又知道了)?

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

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

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

这在我的使用中是罕见的,通常不需要。

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