看到很多動態調用WebService都只是動態調用地址而已,webservice還是同壹個才行,如果換另外的壹個不同的webservice,則需重新生成代理類,下面的例子,稍加修改可以做到只修改配置文件而適應不同的webservice,主要原理是根據指定的WebService地址的WSDL,然後解析模擬生成壹個代理類,通過反射調用裏面的方法,具體看代碼
下面是WebService代碼:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
namespace TestWebService
{
/// <summary>
/// Service1 的摘要說明
/// </summary>
[WebService(Namespace = "http://tempuri.org/", Description = "我的Web服務")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// 若要允許使用 ASP.NET AJAX 從腳本中調用此 Web 服務,請取消對下行的註釋。
// [System.Web.Script.Services.ScriptService]
public class TestWebService : System.Web.Services.WebService
{
[WebMethod]
public string HelloWorld()
{
return "測試Hello World";
}
[WebMethod]
public string Test()
{
return "測試Test";
}
[WebMethod(CacheDuration = 60, Description = "測試")]
public List<String> GetPersons()
{
List<String> list = new List<string>();
list.Add("測試壹");
list.Add("測試二");
list.Add("測試三");
return list;
}
}
}