2011-12-19 61 views
0

嗨可以從代碼中的wsdl文件動態生成代理對象嗎?在代碼中動態生成基於wsdl文件的代理對象

我知道我可以使用工具wsdl.exe,但我想要一個選項下載基於URL的wsdl並在代碼中生成代理對象。

客戶端使用C#,Web服務使用Java。

+0

WSDL.exe是一個.NET程序集,您是否嘗試將它放入Reflector或ILSpy中以找出它是如何實現其魔力的? – 2011-12-19 18:50:52

+1

@ M.Babcock也許.NET Framework有自己的類用於此目的,並且不需要diassembly wsdl.exe。 – user1076159 2011-12-19 19:31:22

+0

也許,但如果谷歌還沒有告訴你,你不能弄明白,那麼wsdl.exe將是一個很好的開始... – 2011-12-19 20:07:28

回答

0

Wsdl.exe使用System.Xml和System.Web.Services的框架類來實現它的魔力。但是,除非您自己明確知道類名,否則這些類很難找到並使用Google搜索很難找到。

一個好主意是看Mono的Wsdl.exe用源代碼:http://c-cpp.r3dcode.com/files/mono/2/10.2/mcs/tools/wsdl/MonoWSDL2.cs

這將讓你儘可能生成存根代碼。

編輯:約翰認爲asmx是遺產,svcutil是要走的路。如果你問我,SOAP本身就是遺留問題,而REST就是要走的路。但由於問題是關於SOAP和svcutil被認爲是一種更好的技術,因此svcutil的工作原理如下:

http://c-cpp.r3dcode.com/files/mono/2/10.2/mcs/tools/svcutil/Driver.cs

+1

-1:這將生成基於遺留技術的代理代碼,不應該用於新開發。 – 2011-12-23 14:52:13