.NET中的动态Web服务代理?

时间:2011-08-28 16:44:18

标签: .net wcf web-services

我需要实现一个系统,该系统能够在使用相同WSDL部署的不同不同应用程序上有条件地使用Web服务。

例如,如果系统B,C,D和E主机Web服务WS1,WS2,WS3和WS4都基于相同的WSDL,从而暴露相同的Web方法,那么我的系统A将需要使用其中一个基于从下游组件(例如,数据库)检索的条件的4个web服务。系统B,C,D和E可以用任何技术(Java,.NET等)实现,但我的系统A基于.NET。

因此,在我的系统A上基于此WSDL的代理类需要动态更改webservice代理中的URI。那么如何在使用所需的Web服务之前动态更改端点?

2 个答案:

答案 0 :(得分:2)

“添加服务引用”或svcutil.exe生成的代理类有几个接受远程地址的构造函数。使用其中之一。请参阅WCF Client Overview

例如:

EndpointAddress addr = new EndpointAddress(uri);
var client = new MyServiceClient(bindingConfigurationName, addr);

答案 1 :(得分:0)

你的意思是改变这样的网址吗?

net.webservicex.www.LondonGoldAndSilverFix Proxy = new net.webservicex.www.LondonGoldAndSilverFix();

Proxy.Url = "http://www.webservicex.net/LondonGoldFix.asmx";