0

我有一个 WCF 应用程序,它有一堆域实体(由 NHibernate 映射)和服务合同。目前,我通过服务合同直接向 WCF 客户端公开实体。但这使我遇到了 WCF 数据协定的许多限制,特别是与序列化相关的限制。例如圆形图限制、KnownTypes 等。

似乎更好的方法是在服务器端使用实体并使用 DTO 在 WCF 服务器和客户端之间传输对象。我对吗?是必须的吗?

4

1 回答 1

3

WCF 是一个基于消息的系统——它基本上通过 XML 序列化数据消息连接客户端和服务器。因此,WCF只能来回发送静态数据——它不是一个“远程过程调用”或“远程对象”系统,您可以在其中将功能从客户端传输到服务器并返回。

由于任何 WCF 传输都必须是 XML 可序列化的,因此它实际上只是关于数据 - 所以是的 - WCF 最适合仅发送来回 DTO 样式数据对象。

于 2013-02-09T07:33:49.400 回答