通过WCF服务公开的对象应该只是DTO吗?

时间:2013-02-09 06:10:42

标签: wcf dto

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

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

1 个答案:

答案 0 :(得分:3)

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

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

相关问题