我正在使用端点为http://api.domain_a.com/
并使用 Visual Studio 的 Web服务我可以轻松生成代理类以使用该服务简单易行。
但我想创建一种方式,用户可以使用自己的服务(并访问自己的数据,而不是我自己的数据),我想知道是否有一种方法可以更改服务的基本网址即时。
作为示例
我通过将Web引用添加到我的项目来生成代理类,但现在,根据每个请求我有一个用户名,我将获得用户设置(包含其URL),< strong>我怎么能(如果有可能)告诉生成的代理我正在使用域http://domain_b.com/api
而不是我在添加Web引用时使用的原始代码?
我是否需要手动调用该服务?发送和接收XML数据?或者有一个“开关”,我可以用来指向新的URL?
答案 0 :(得分:1)
如果您使用的是.NET 2.0,则每个代理类都应具有URL属性。只需更新URL属性,代理将指向新服务。
如果您正在使用WCF,那么事情会变得复杂一些,但不会太多。您只需更改端点地址:
var service = new ServiceClient();
string url = "http://domain_b.com/api";
EndpointAddress newAddress = new EndpointAddress(url);
service.Endpoint.Address = newAddress;