我在不同的服务器上获得了两个wcf服务。两者都定义了自己的clientbase,如:
public class Channel1 : ClientBase<IService1>, IService1
和
public class Channel2 : ClientBase<IService2>, IService2
现在我需要为它们添加一个获取服务统计信息的常用方法,让我们说:
public interface IService3{ string GetStats(); }
。在每台服务器上,将运行将要求此统计信息的应用程序(或服务)
有没有办法,我怎样才能编写Channel1和Channel2来接受IService3,所以我只在配置文件中定义端点?或者我必须创建自己的应用程序以与Channel1进行通信而其他应用程序与Channel2进行通信吗?
如果我定义IService1 : IService3
以及IService2 : IService3
和Channel3 : ClientBase<IService3>, IService3
,Channel3是否能够连接到两个服务(每个服务器上一次一个),具体取决于EndPoint? (有可能出现NotImplementedException)
我的目标是只有一个应用程序(服务),它可以在单独的服务上调用一些常用的方法。
答案 0 :(得分:1)
让两个现有服务合同继承第三个共享合同的解决方案将按照您的描述运行。在您的示例中,您需要确保IService3也使用WCF属性ServiceContract
和OperationContract
进行修饰。