十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
這不是一篇教你了解WebService的博文,也不是對WebService的深入理解, 這是一篇教你在開發(fā)過程中,如果動態(tài)的調(diào)用WebService一個方法.

1 : 在項目中新建添加服務引用
2 : 輸入引用服務器的地址
然后我們的程序集下就會多出剛才新建的Service 引用相關的文件引用.
然后我們就可以直接在代碼中調(diào)用ServiceReference1 , 就可以了,在這里就不在繼續(xù)的詳細做解釋說明了,我們還是回到主題,如何減去這些步驟,因為這樣的方式添加引用,1 : 不好擴展, 2 : 比較繁瑣
一 : 在項目中右鍵選擇新建
然后我們修改Component類本部.
我們添加完成之后,Component類內(nèi)部默認為:
public partial class Component1 : Component
{
public Component1()
{
InitializeComponent();
}
public Component1(IContainer container)
{
container .Add(this );
InitializeComponent();
}
}在此我們需要做一些修改.
首先在項目中添加WebService的引用.
然后將Component類 繼承自 SoapHttpClientProtocol
至此將Component類改為 :
[ WebServiceBinding (Namespace = "http://tempuri.org/" )]
public partial class Component1 : SoapHttpClientProtocol
{
public Component1()
{
InitializeComponent();
}
public Component1(IContainer container)
{
container . Add(this );
InitializeComponent();
}
}SoapHttpClientProtocol SoapHttpClientProtocol類可以直接訪問指定的webService的指定方法
若要與 XML Web services 通信,請為要調(diào)用的 XML Web services 創(chuàng)建一個間接或直接從 WebClientProtocol 派生的代理類。 可以不用手動創(chuàng)建代理類,而使用 Web 服務描述語言工具 (Wsdl.exe) 為給定 XML Web services 的服務說明創(chuàng)建代理類。 當為 SOAP 協(xié)議生成代理類時,對 XML Web services 方法的同步調(diào)用通過 Invoke 方法進行,而異步調(diào)用通過BeginInvoke 方法和 EndInvoke 方法進行。
然后在配置文件中寫入我們所要引用的服務器鏈接地址 :
在我們添加的Conponent Class 構造中調(diào)用服務器鏈接地址
public Component1( string serviceUrl)
{
if (serviceUrl. Equals( "UpdateServiceAddress" ))
base .Url = ConfigurationManager . AppSettings["UpdateServiceAddress" ];
else
base .Url = ConfigurationManager . AppSettings["ServiceAddress" ];
}然后當我們想要調(diào)用WebService中的方法時,只需要在Component1類中寫.
如我的調(diào)用方式 :
[ WebServiceBinding(Namespace = "http://tempuri.org/" )]
public class OffLineLearingClient : SoapHttpClientProtocol
{
public OffLineLearingClient( string serviceUrl)
{
if (serviceUrl. Equals( "UpdateServiceAddress" ))
base .Url = ConfigurationManager . AppSettings["UpdateServiceAddress" ];
else
base .Url = ConfigurationManager . AppSettings["ServiceAddress" ];
}
public OffLineLearingClient()
{
base .Url = ConfigurationManager . AppSettings["ServiceAddress" ];
}
[ SoapDocumentMethod ]
public YHBJUser GetUser( YHBJUser user)
{
return base . Invoke("GetUser" , new object [] { user })[0 ] as YHBJUser ;
}
[ SoapDocumentMethod ]
public List < YHBJClass> GetTrainings11( string userId)
{
return base . Invoke("GetTrainings11" , new object [] { userId })[0 ] as List ;
} 這樣我們就可以動態(tài)的實現(xiàn)如果調(diào)用WebService了.
創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國云服務器,動態(tài)BGP最優(yōu)骨干路由自動選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡助力業(yè)務部署。公司持有工信部辦法的idc、isp許可證, 機房獨有T級流量清洗系統(tǒng)配攻擊溯源,準確進行流量調(diào)度,確保服務器高可用性。佳節(jié)活動現(xiàn)已開啟,新人活動云服務器買多久送多久。