我们使用WCF在客户端和服务器应用程序之间进行通信。客户端应用程序有许多功能需要与服务器通信 - 我们选择在多个类中实现此功能(分离责任)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);
}
线索是每客户端/服务器对的单个端点的配置,而不是每个服务接触的端点配置我想作用。
这可能吗?
谢谢你的回复。序列化服务不是解决方案,服务上的方法需要在服务器上处理。参数需要是可序列化的,但方法本身必须在服务器上执行。我用一个SessionMode找到了一个关于ServiceContracts的文档,现在我正在尝试。 – Thies 2009-09-17 08:32:58
我从来没有建议序列化服务。 Xml序列化是WCF的工作原理。它负责把你的对象和翻译成Xml和其他方式。 我的答复的重点是向您解释,包装您的服务请求和回复可能很好地解决了您的问题。 – 2009-09-18 08:08:55