我可以将我的DTO类暴露给WCF客户端,还是应该使用自动生成的类?

时间:2013-03-11 12:04:37

标签: asp.net-mvc wcf dto

我目前在UI的前端使用MVC4开发N-Tier应用程序,然后与WCF服务进行通信,然后调用使用EF从Oracle获取数据的业务层。 / p>

我创建了一组从EF填充的DTO对象,并通过WCF服务发送到UI。我的问题是......

当我在UI中添加服务引用时,我将DTO类重新创建为Reference.cs中服务代码的一部分。这样可以,或者我应该添加对原始DTO类项目的引用吗?

它纯粹是一个开发选择,还是有特定的好处或陷阱或两种方法?

非常感谢任何帮助。

谢谢,尼克

1 个答案:

答案 0 :(得分:1)

使用原始合同程序集的好处是,当合同更改时,您的客户端程序集中会出现编译错误。如果您使用了生成的客户端,那么它将在运行时编译然后崩溃。特别是对于持续集成,您希望尽早获得错误,编译时间很长。

根据您生成的客户端实现,它可能已经实现了INotifyPropertyChanged。这可能比你的DTO可以做的更多。 DTO不应该实现这一点。因此,如果您要在客户端再次重新实现所有DTO以使用此接口,您可能会争辩说使用生成的类已经为您带来了这种好处。

所以最后......它纯粹是一个开发选择。