通過(guò)在"Web引用"中的本地代理類中添加一個(gè)構(gòu)造函數(shù),這個(gè)構(gòu)造函數(shù)是以Web Service的URL為參數(shù)的重載方法實(shí)現(xiàn)動(dòng)態(tài)調(diào)用WebService。
在Visual Studio中添加Web Service引用時(shí),會(huì)生成一個(gè)Web References方件夾, 顯示這個(gè)文件夾中的所有文件,我們會(huì)發(fā)現(xiàn)Reference.cs文件,打開(kāi)這個(gè)文件,里面定義了一個(gè)從System.Web.Services.Protocols.SoapHttpClientProtocol繼承的類,在它的構(gòu)造函數(shù)中,有這樣的初始化語(yǔ)句:
this.Url = http://localhost/webservice/MessageService.asmx;
我們只要增加一個(gè)帶有參數(shù)的構(gòu)造函數(shù),參數(shù)就是我們要引用的Web Service的url, 就可以實(shí)現(xiàn)動(dòng)態(tài)添加對(duì)Web Service的引用。
對(duì)于ASP.net 1.1
- [System.Diagnostics.DebuggerStepThroughAttribute()]
- [System.ComponentModel.DesignerCategoryAttribute("code")]
- [System.Web.Services.WebServiceBindingAttribute(Name="MessageServiceSoap", Namespace="http://tempuri.org/")]
- public class MessageService : System.Web.Services.Protocols.SoapHttpClientProtocol {
- public MessageService(string serviceAddress) {
- this.Url = "http://localhost/webservice/MessageService.asmx";
- }
-
- public MessageService(string serviceAddress) {
- this.Url = serviceAddress;
- }
- }
對(duì)于ASP.net 2.0
- [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.42")]
- [System.Diagnostics.DebuggerStepThroughAttribute()]
- [System.ComponentModel.DesignerCategoryAttribute("code")]
- [System.Web.Services.WebServiceBindingAttribute(Name="MessageServiceSoap", Namespace="http://tempuri.org/")]
- public partial class MessageService : System.Web.Services.Protocols.SoapHttpClientProtocol {
- private System.Threading.SendOrPostCallback RegisterUserOperationCompleted;
- ……
- private System.Threading.SendOrPostCallback SendReplyMessageOperationCompleted;
- private bool useDefaultCredentialsSetExplicitly;
- public MessageService() {
- this.Url = "http://localhost:8023/webservice/MessageService.asmx";
- if ((this.IsLocalFileSystemWebService(this.Url) == true)) {
- this.UseDefaultCredentials = true;
- this.useDefaultCredentialsSetExplicitly = false;
- }
- else {
- this.useDefaultCredentialsSetExplicitly = true;
- }
- }
-
- public MessageService(string msurl)
- {
- this.Url = msurl;
- if ((this.IsLocalFileSystemWebService(this.Url) == true))
- {
- this.UseDefaultCredentials = true;
- this.useDefaultCredentialsSetExplicitly = false;
- }
- else
- {
- this.useDefaultCredentialsSetExplicitly = true;
- }
- }
- }
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)
點(diǎn)擊舉報(bào)。