我有一个WCF服务,它是网状网络的一部分。这意味着有10多台机器暴露相同的服务,但所有这些机器也需要连接到其他机器来检索数据。这意味着应用程序既可以公开服务,也可以连接到其他计算机上的相同服务。
目前,我已在程序内添加了服务引用,但由于该程序是服务,因此它似乎相当浪费。这意味着我基本上已经创建了一个自身的服务引用,每当我改变某些东西时我都必须更新这个引用。
我可以解决这个问题,并在不添加服务引用的情况下使用该服务吗?
问题是如果没有Service引用,我没有用于设置服务的代理类。目前,要连接到另一台机器上的服务,我使用如下代码:
var client = new MyServiceClient(binding, otherMachineEndpointAddress);
//call some methods on client
如果我可以替换创建服务客户端的这一部分,连接到服务并调用我的方法,应用程序将大大简化。
有什么想法吗?
答案 0 :(得分:1)
我试图找到答案很长一段时间,但在发布这个问题之后我发现了怎么做,而且一直都很容易。
我用这个
替换了问题中提到的代码var client = ChannelFactory<IMyService>.CreateChannel(binding, otherMachineEndpointAddress);
//call some methods on client
作为魅力;)