Web Service代理類生成工具


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

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

需求

      既然上面可以生成了代理類,並且如果我有幾個WebService需要生成,或者多次要生成代理類編譯dll的,這樣就會很麻煩了。把這生成代理類和編譯成dll的做成一個工具就會帶來方便。

 

開始行動

先直接上效果圖片

 

 

第一步

    把需要到的兩個工具:wsdl.exe和csc.exe工具給單獨復制出來

 

第二步

    通過C#來代碼來執行那兩個命令行工具下面是我的一個方法:

/// <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 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM