Web Service代理類生成工具

 本文原文鏈接:http://www.cnblogs.com/dengxinglin/p/3334158.html html

以前一篇文章寫 Web Service服務代理類生成及編譯 , 經過命令行的方式能夠直接把SOAP的Webservice服務生成代理類,再編譯成一個dll工具

需求post

      既然上面能夠生成了代理類,而且若是我有幾個WebService須要生成,或者屢次要生成代理類編譯dll的,這樣就會很麻煩了。把這生成代理類和編譯成dll的作成一個工具就會帶來方便。ui

 

開始行動url

先直接上效果圖片spa

 

 

第一步命令行

    把須要到的兩個工具:wsdl.exe和csc.exe工具給單獨複製出來代理

 

第二步調試

    經過C#來代碼來執行那兩個命令行工具下面是個人一個方法:code

/// <summary>
        /// 輸入參數執行命令的方法
        /// </summary>
        /// <param name="argument"></param>
        /// <returns></returns>
        public string Startcmd(string argument)
        {
            string output = "";
            try
            {
                Process cmd = new Process();
                cmd.StartInfo.FileName = FileName;
                cmd.StartInfo.Arguments = argument;
                cmd.StartInfo.UseShellExecute = false;
                cmd.StartInfo.RedirectStandardInput = true;
                cmd.StartInfo.RedirectStandardOutput = true;
                cmd.StartInfo.CreateNoWindow = true;
                cmd.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
                cmd.Start();
                output = cmd.StandardOutput.ReadToEnd();
                //Console.WriteLine(output);
                cmd.WaitForExit();
                cmd.Close();
            }
            catch (Exception e)
            {
                output = e.ToString();
                return output;
                //   Console.WriteLine(e);
            }
            return output;
        }

 

第三步

    調試。在wsdl工具生成代理通常都沒有問題,也能正常生成代理類;可是用csc編譯成dll的時候,運行csc工具會有錯誤,咱們須要引用一個cscompui.dll,安裝vs後能夠直接找到的。還須要把代理中引用的程序集都填寫上,也包括是系統的程序集。通常會包括下面的命名空間引用

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

 

 System.Xml.Serialization 是在System.XML.dll程序集

System.Web.Services 程序集是System.Web.Services.dll

using System.Diagnostics;using System.ComponentModel;using System;程序集都在System.dll

System.Data的程序集是System.Data.dll

我把那四個程序集的framework3.5的單獨複製出來的;

 

你若是是要修改爲4.0:

一:能夠本身找到4.0下面相應的dll去替換掉,

二:先把這個項目修改爲framework4.0的項目,以後在程序中References-->System.Data--》properties-->Copy local的屬性值給爲true,就到複製出framework4.0的版本dll,

 

若是csc編譯有錯誤:根據返回的錯誤代碼能夠參考http://msdn.microsoft.com/zh-cn/library/ms228296.aspx,均可以找到緣由的。

 

上傳速度太慢,在博客園上傳不了,上傳到了百度網盤:百度網盤下載

 

備註: 因爲wsdl生成的代理類和方法大都是公共的,若是兩個不一樣的WebService,生成使用了相同的命名空間,則在csc編譯的時候會有錯誤,這隻能去手動解決或者那兩個生成的代碼放在不一樣的命名空間了。

本文原文鏈接:http://www.cnblogs.com/dengxinglin/p/3334158.html 

相關文章
相關標籤/搜索