[英]Consuming a WSDL WebService from a DLL in C# using Visual Studio 2012
僅供參考,就像我一樣,通過Google查找此問題的任何人都可以參考此頁面: https : //www.sitepoint.com/net-web-services-5-steps/
您可以跳過第1部分,因為您無需創建Web服務。 (他們建立了一個接受字符串並將其插入SQL查詢並返回DataTable的方法-一種非常常見的Web服務方法)
第2部分:創建代理類
打開記事本。 將步驟1中的URL放在最后:
wsdl.exe /l:CS /n:WService /out:GetSuppliers.cs http://localhost/suppliers.asmx?WSDL
將文件另存為makeWS.bat。 如果運行它,它將使用wsdl實用程序來創建代理類(.cs)文件。 現在暫緩。
第3部分:構建我們的DLL
添加以下內容以將csc實用程序用於批處理文件中的一行以創建DLL:
csc /t:library /out:GetSuppliers.dll GetSuppliers.cs /reference:System.dll,System.Data.dll,System.Web.dll, System.Web.Services.dll,System.XML.dll /optimize
現在保存並運行makeWS.bat。
第4部分:將DLL合並到使用Web服務的項目中
在將調用Web服務的類的頂部添加“ using WService;”聲明,因為這是wsdl實用程序與/n:WService
一起添加的名稱空間(您可以根據需要更改此名稱,但必須這樣做始終)。
在類中添加如下代碼: WService mySvc = new WService();
您應該能夠在Web服務內的WebMethod上進行調用: DataTable dt = mySvc.GetDataFromWebMethodX();
其中GetDataFromWebMethodX()
是您嘗試使用的WebMethod。
第5部分:您可以查看一些有用的信息,這些信息可以使您異步調用Web服務(無需等待響應就可以繼續執行代碼,以后再執行回調函數),但是通常並不需要。
根據問題注釋,似乎#4存在一個問題,該問題可以獨立於創建DLL進行,也可以在創建DLL之前進行。 如果您在使用“服務引用”引用Web服務URL時遇到問題,則它必須是可發現的,並且其名稱不得與相同環境/域中的其他名稱沖突。 正如問題的作者所發現的,它的配置中不能定義與同一域中的另一個站點/ Web服務沖突的端點(地址,端口)。 似乎這個問題導致的答案更多是關於如何設置Web服務,而不是關於如何執行連接到Web服務的過程,但我認為我會發布這兩個方面的信息,因為這兩個方面對於使用Web服務都非常重要。 Web服務放入一個項目並使用它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.