WCF服务返回另一个服务(服务工厂?)

Thi*_*ies 6 .net c# wcf endpoints

我们使用WCF进行客户端和服务器应用程序之间的通信.客户端应用程序具有许多需要与服务器通信的功能 - 我们选择在多个类中实现此功能(分离责任)

当时,我们正在为每个对象创建新的WCF端点和服务合同 - 开票,会计,内容管理等.这会导致客户端和服务器上的大量端点配置(在进入测试时可能存在错误配置问题,生产平台).

我想知道我是否可以定义一个可以提供多个服务联系实现的WCF端点.然后,我们的配置文件将包含一个端点(到服务工厂),我可以通过指定我感兴趣的服务的接口来请求不同的服务.

例如

using (IServiceClientFactory serviceClientFactory = new RealProxyServiceClientFactory())
            {
                // This is normal WCF proxy object creation.
                IServiceFactory serviceFactory = serviceClientFactory.CreateInstance<IServiceFactory>("");

                // This is what we would like to do
                IInvoiceService invoiceService = serviceFactory.getService(typeof(IInvoiceService));

                invoiceService.executeOperation(data);
            }
Run Code Online (Sandbox Code Playgroud)

线索是每个客户端/服务器对的单个端点配置,而不是我希望提供的每个服务联系的端点配置.

这可能吗?

Jon*_*een 1

我怀疑这是否有效。Xml 序列化可能是这里最大的问题。

而且我认为你实际上并不需要它。如果我处于你的立场,我会尝试抽象我与服务的通信。基本上,您总是会向服务发送一条“消息”,该服务的“目标”是您想要访问的类之一。该服务总是会回复一个“响应”,其中的内容将由“消息”发送到的类填充。

另一种方法是通过服务路由所有这些消息,该服务将请求回显到适当的服务。通过这种方式,您可以保持可扩展性,但仍然有很大的配置负担。

HTH。