亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

.NET動態調用WebService

發布時間:2020-07-29 01:05:28 來源:網絡 閱讀:1004 作者:lAlbin 欄目:編程語言

這不是一篇教你了解WebService的博文,也不是對WebService的深入理解, 這是一篇教你在開發過程中,如果動態的調用WebService一個方法.

在比較常見的WebService調用,我們一般是選擇在項目中,新建添加引用的方式來引用WebService服務. 例如下面的方式  : 

1 : 在項目中新建添加服務引用

 

.NET動態調用WebService

2 : 輸入引用服務器的地址

.NET動態調用WebService

然后我們的程序集下就會多出剛才新建的Service 引用相關的文件引用.

.NET動態調用WebService

然后我們就可以直接在代碼中調用ServiceReference1 , 就可以了,在這里就不在繼續的詳細做解釋說明了,我們還是回到主題,如何減去這些步驟,因為這樣的方式添加引用,1 : 不好擴展, 2 : 比較繁瑣 

下面介紹一種方式用來動態的調用WebService References :

一 : 在項目中右鍵選擇新建

.NET動態調用WebService

然后我們修改Component類本部.

我們添加完成之后,Component類內部默認為:

  public partial class Component1 : Component
    {
        public Component1()
        {
            InitializeComponent();
        }
        public Component1(IContainer container)
        {
            container .Add(this );
            InitializeComponent();
        }
    }


在此我們需要做一些修改.

首先在項目中添加WebService的引用.

.NET動態調用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 通信,請為要調用的 XML Web services 創建一個間接或直接從 WebClientProtocol 派生的代理類。 可以不用手動創建代理類,而使用 Web 服務描述語言工具 (Wsdl.exe) 為給定 XML Web services 的服務說明創建代理類。 當為 SOAP 協議生成代理類時,對 XML Web services 方法的同步調用通過 Invoke 方法進行,而異步調用通過BeginInvoke 方法和 EndInvoke 方法進行。

然后在配置文件中寫入我們所要引用的服務器鏈接地址 :

<add key="ServiceAddress" value="http://localhost:7340/CourseMakerService.asmx" />

在我們添加的Conponent Class 構造中調用服務器鏈接地址

  public Component1( string serviceUrl)
        {
            if (serviceUrl. Equals( "UpdateServiceAddress" ))
                base .Url = ConfigurationManager . AppSettings["UpdateServiceAddress" ];
            else
                base .Url = ConfigurationManager . AppSettings["ServiceAddress" ];
        }


然后當我們想要調用WebService中的方法時,只需要在Component1類中寫. 

如我的調用方式 : 

[ 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 <YHBJClass > ;
        }


這樣我們就可以動態的實現如果調用WebService了.


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

防城港市| 峡江县| 江阴市| 乌兰浩特市| 鄱阳县| 湘乡市| 郴州市| 嘉黎县| 石阡县| 依安县| 酒泉市| 蕲春县| 闻喜县| 长宁县| 宁河县| 公安县| 广河县| 稷山县| 罗田县| 蕉岭县| 榕江县| 鲁甸县| 青神县| 拉萨市| 潮州市| 渭南市| 水城县| 绥宁县| 余江县| 张家口市| 东丽区| 托里县| 梁河县| 开封县| 海林市| 满城县| 仁寿县| 琼海市| 离岛区| 长葛市| 聂荣县|