深入.net調用webservice的總結分析
2024-07-10 12:45:27
供稿:網友
最近做一個項目,由于是在別人框架里開發app,導致了很多限制,其中一個就是不能直接引用webservice 。
我們都知道,調用webserivice 最簡單的方法就是在 "引用" 那里點擊右鍵,然后選擇"引用web服務",再輸入服務地址。
確定后,會生成一個app.config 里面就會自動生成了一些配置信息。
現在正在做的這個項目就不能這么干。后來經過一番搜索,就找出另外幾種動態調用webservice 的方法。
廢話少說,下面是webservice 代碼
代碼如下:
View Code
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;
}
}
}
動態調用示例:
方法一:
看到很多動態調用WebService都只是動態調用地址而已,下面發一個不光是根據地址調用,方法名也可以自己指定的,主要原理是根據指定的WebService地址的WSDL,然后解析模擬生成一個代理類,通過反射調用里面的方法