是否可以在一个解决方案中声明WCF服务和域对象的接口,并且在客户端解决方案中我们可以实现它的功能吗? (在地理上它是一个不同的解决方案)。如果可能,我应该遵循什么技术?我应该去REST服务吗?
答案 0 :(得分:1)
是的,您可以在一个解决方案中使用Interface和DataObjects,并在另一个解决方案中实现该接口(这将是实际包含WCF服务的接口)。
如果你这样做,你可以拥有WCF服务的客户端(如果你控制它)引用包含接口和对象的程序集。这样就不需要生成它们。< / p>
这是执行WCF的标准方式,与所使用的绑定无关。
答案 1 :(得分:0)
如果使用单独的接口和实现项目/解决方案(如果接口项目还包含服务方法使用的对象的接口),那么WCF服务接口不应该是接口项目的一部分,而是在实施项目。
原因是WCF服务操作不应在其方法签名中使用接口类型,因为接口类型无法序列化(以可互操作的方式)。它们应该使用实现类型,因此它们应该是实现项目的一部分,因为否则您需要将接口项目的引用添加到实现项目中。那将是糟糕的设计,并会使界面与实现的分离无用。