如何使用可配置的URL调用Web服务

时间:2011-09-27 14:57:41

标签: c# webclient

我写了一个网络服务。我写了一个网站。我希望网站BLL代码能够调用网络服务。

我有一个包含此服务URL的配置表。我将Web服务URL注入调用代码。我应该使用哪种Web客户端或套接字可以接收动态Web服务URL?

我想用:

WebClient webClient = new WebClient();
UTF8Encoding response = new UTF8Encoding();
string originalStr = response.GetString(webClient.DownloadData(BLLConfig.Current);

但也许有更优雅的方式?

我正在运行时从数据库表中加载配置。

以下是我尝试在Visual Studio中使用Web引用的方法:

using (var client = new GetTemplateParamSoapClient("GetTemplateParamSoap"))
{
    TemplateParamsKeyValue[] responsArray = client.GetTemplatesParamsPerId(CtId, tempalteIds.ToArray());

    foreach (var pair in responsArray)
    {
        string value = FetchTemplateValue(pair.Key, pair.Value);
        TemplateComponentsData.Add(pair.Key, value);
    }
}

2 个答案:

答案 0 :(得分:1)

您可以在Visual Studio中将Web服务的URL添加为Web引用,然后将Service.URL属性设置为config中的值

答案 1 :(得分:0)

.NET有许多内置的支持来消费Web服务...在向项目添加服务引用之后,它会生成必要的代码......你可以按原样使用 - 如果你需要配置URL生成的客户端类具有URL属性,您可以相应地设置...有关优秀的演练,请参阅http://johnwsaunders3.wordpress.com/2009/05/17/how-to-consume-a-web-service/并查看SOAP xml client - using Visual Studio 2010 c# - how?