WCF服务调用WCF服务 - 在哪里放置客户端服务引用?

时间:2011-05-17 12:28:56

标签: c# wcf visual-studio-2010

我正在考虑实现一个WCF服务,该服务将依次调用一个(或者更多)外部WCF服务(或者至少是我将使用WCF服务引用从代码调用的Web服务)

我的解决方案分为ServiceLayer,BusinessLogicLayer,DomainLayer,DtoObjects等。

我的问题是:
客户端的逻辑都将在BusinessLogicLayer中 - 但如果我将ServiceReferences放在那里,那么我还需要将服务配置放在ServiceLayer中 - 因为这是发起调用的地方。

这是正确的做法吗?

或者:
在ServiceLayer中创建客户端并将其传递给BLL 不确定我喜欢这个想法...但它只意味着一个配置。

或者:
还有另一种方式吗?

1 个答案:

答案 0 :(得分:0)

您可以查看它,因为任何调用WCF服务的代码都是WCF客户端,即使这恰好是本身托管为WCF服务的另一部分代码。因此,您需要在客户端配置存在并且无论何时进行呼叫都可用。我不知道是否有一种很好的方式来共享配置,或者甚至是可取的......相反,我会在每个地方选择单独的配置文件。在一个地方你有服务端配置,而在另一个地方有客户端配置,实际上没有多少重复。

如果您可以使用WCF Discovery(http://msdn.microsoft.com/en-us/library/dd456782.aspx),它可以减少您必须创建的配置量。此外,使用接口和ChannelFactory<T>而不是ServiceReferences将为您提供更清晰的设置。

希望这有帮助。