0

本文建议将 WCF 服务解决方案拆分为 2 个项目,1 个用于合同程序集,1 个用于实现程序集。

为什么这是有利的?我能从这次分裂中得到什么?谢谢。

4

2 回答 2

3

明显的优势是您可以将服务合同 dll 文件共享给您的客户。当您在客户端和服务器之间共享一个公共服务合同 dll 时,您的客户端可以使用ChannelFactory该类的服务。

ChannelFactory<IHelloWorld> channel = new ChannelFactory<IHelloWorld>("tcp"); 

(客户端可以使用 WCF 服务的两种不同方式。(在 WCF 中使用 ChannelFactory 与代理

于 2012-04-20T13:49:46.633 回答
1

一般来说(不是专门针对 WCF 服务),从设计的角度来看,将接口与实现分开是一种很好的做法。

但是,对于 WCF 服务,您必须注意这一点:如果接口项目包括服务方法使用的对象的接口,则 WCF 服务接口不应成为接口项目的一部分,而应在实现项目中定义。这样做的原因是 WCF 服务操作不应在其方法签名中使用接口类型,因为接口类型不能序列化(以可互操作的方式)。它们应该使用实现类型,因此它们应该是实现项目的一部分,因为否则您需要将接口项目中的引用添加到实现项目中。那将是糟糕的设计,并且会使接口与实现的分离变得毫无用处。

于 2012-04-20T13:25:42.633 回答