重用WebService但使用自定义端点

时间:2010-11-01 13:09:37

标签: visual-studio web-services proxy-classes

我正在使用端点为http://api.domain_a.com/并使用 Visual Studio Web服务我可以轻松生成代理类以使用该服务简单易行。

alt text

但我想创建一种方式,用户可以使用自己的服务(并访问自己的数据,而不是我自己的数据),我想知道是否有一种方法可以更改服务的基本网址即时

作为示例

我通过将Web引用添加到我的项目来生成代理类,但现在,根据每个请求我有一个用户名,我将获得用户设置(包含其URL),< strong>我怎么能(如果有可能)告诉生成的代理我正在使用域http://domain_b.com/api而不是我在添加Web引用时使用的原始代码?

我是否需要手动调用该服务?发送和接收XML数据?或者有一个“开关”,我可以用来指向新的URL?

1 个答案:

答案 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;