C#之wsdl工具的使用

webservice 調用與生成的過程,其實都非常簡單,有人說,現在都說改用WCF了。要我說啊,WCF是微軟典型的敗筆而已,明明有webapi方便、簡繁、快捷。

俺在這裏寫寫,只是爲了記錄一下,歲數大很容忘記東西,但凡高手直接繞過就好了。

這個東西好像是大象裝冰箱分,也就是1和2嘛

1.生成客戶端代碼調用webservice代碼

wsdl E:\WS.wsdl /out:WS.cs

這個生成代碼和引用方式生成的代碼幾乎一樣,代碼這裏就不賣弄了。這麼幹的理由也就是可以少一個引用動作而已。似乎有點先進性的感覺。

2.反過來生成服務端

wsdl /si C:\webserver.wsdl /out:D:\

服務端代碼當然是一個接口,大概如下

​
using System;
using System.ComponentModel;
using System.Diagnostics;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Xml.Serialization;

// 
// 此源代碼由 wsdl 自動生成, Version=4.0.30319.17929。
// 


/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.0.30319.17929")]
[System.Web.Services.WebServiceBindingAttribute(Name="webserver", Namespace="http://localhost:8080/webserver.wsdl")]
[System.Xml.Serialization.SoapIncludeAttribute(typeof(WebSoeInfo))]
[System.Xml.Serialization.SoapIncludeAttribute(typeof(VarValue))]
public interface IWebserver {
    
    /// <remarks/>
    [System.Web.Services.WebMethodAttribute()]
    [System.Web.Services.Protocols.SoapRpcMethodAttribute("", RequestNamespace="urn:scada", ResponseNamespace="urn:scada")]
    [return: System.Xml.Serialization.SoapElementAttribute("result")]
    int UserLogin(string username, string password);
    
    /// <remarks/>
    [System.Web.Services.WebMethodAttribute()]
    [System.Web.Services.Protocols.SoapRpcMethodAttribute("", RequestNamespace="urn:scada", ResponseNamespace="urn:scada")]
    [return: System.Xml.Serialization.SoapElementAttribute("result")]
    VarValue[] ReadVarValue(string varNameList);
    
    /// <remarks/>
    [System.Web.Services.WebMethodAttribute()]
    [System.Web.Services.Protocols.SoapRpcMethodAttribute("", RequestNamespace="urn:scada", ResponseNamespace="urn:scada")]
    [return: System.Xml.Serialization.SoapElementAttribute("result")]
    int WriteVarValue(string varName, int waitTime, string value);

​

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章