我在寫一些.NET 2.0 ASMX服務。我有一個場景,我需要使用WSDL.exe生成Web服務代理,但生成的類沒有實現接口,所以我不能僞造Web服務進行測試。如何從WSDL.exe生成客戶端和接口代碼?
下面是我正在嘗試的一種方法,但目前還不能編譯:我知道WSDL.exe可以使用/serverInterface
選項生成接口。原則上,我想產生都接口和代理類如下:
WSDL MyWebService.wsdl/NOLOGO/L:CS /namespace:Juliet.Services /O:C:\項目\ JulietService \ MyWebServiceInterface.cs /serverInterface
WSDL MyWebService.wsdl/NOLOGO /升:CS /namespace:Juliet.Services /o:C:\projects\JulietService\MyWebServiceProxy.cs
然後在我的項目中包含這兩個文件。後來我應該能夠從產生代理得出我自己的類並實現生成的接口如下:
public class MockableWebService : MyWebService, IMyWebServiceSoap11Binding
{
// No implementation, the interface is already implicitly implemented
// from the methods in the base class.
}
這應該在工作原理,除了接口和代理文件將自動生成同一個類我的請求/響應消息的定義,導致The namespace 'Juliet.Services' already contains a definition for 'ABC'
類型的數百個錯誤。
我想保持界面/代理生成儘可能自動化 - 這意味着,我要不惜一切代價避免手工修改生成的代碼。
任何人都可以提出一種方法來生成接口和代理同時與WSDL.exe,或更好的方式來獲得上述結果?
你的建議我更容易避免生成的代理推導我自己的類,但我有一點不同的問題:WSDL.EXE生成代理和接口類作爲單獨的操作。生成的代理和生成的接口包含定義還將包含請求/響應消息的定義 - 最終結果,因爲它們包含重複的類定義,所以我無法在兩個輸出中包含這些文件。我不想在不同的命名空間中生成響應,理想情況下,我想抑制爲我的文件生成請求/響應消息。 – Juliet 2011-04-07 19:33:22
對不起,但那是不可能的。這也不是你要求的。 – 2011-04-07 19:35:54
@Downvoter:downvote的原因? – 2011-04-07 19:55:12