在wcf服务中,是否可以在一个解决方案中使用接口和域对象以及在另一个解决方案中实现?

时间:2011-12-30 09:46:19

标签: wcf

是否可以在一个解决方案中声明WCF服务和域对象的接口,并且在客户端解决方案中我们可以实现它的功能吗? (在地理上它是一个不同的解决方案)。如果可能,我应该遵循什么技术?我应该去REST服务吗?

2 个答案:

答案 0 :(得分:1)

是的,您可以在一个解决方案中使用Interface和DataObjects,并在另一个解决方案中实现该接口(这将是实际包含WCF服务的接口)。

如果你这样做,你可以拥有WCF服务的客户端(如果你控制它)引用包含接口和对象的程序集。这样就不需要生成它们。< / p>

这是执行WCF的标准方式,与所使用的绑定无关。

答案 1 :(得分:0)

如果使用单独的接口和实现项目/解决方案(如果接口项目还包含服务方法使用的对象的接口),那么WCF服务接口不应该是接口项目的一部分,而是在实施项目。

原因是WCF服务操作不应在其方法签名中使用接口类型,因为接口类型无法序列化(以可互操作的方式)。它们应该使用实现类型,因此它们应该是实现项目的一部分,因为否则您需要将接口项目的引用添加到实现项目中。那将是糟糕的设计,并会使界面与实现的分离无用。