2012-02-17 22 views
0

我在使用WSDL,並在此WSDL中定義了一些方法和類型。如何設置用於生成代理類的模式

這裏的WSDL中的XML的例子:

<operation name="GETSTUFF"> 
    <wsdlsoap:operation soapAction="GETSTUFF"/> 
    <input name="GETSTUFFSRequest"> 
    <wsdlsoap:body use="literal"/> 
    </input> 
    <output name="GETSTUFFSResponse"> 
    <wsdlsoap:body use="literal"/> 
    </output> 
</operation> 

生成的方法看起來像這樣client.GETSTUFF()這是不是漂亮。 對於在WSDL中定義的複雜類型以及從Visual Studio添加服務引用時生成的相應代理類也是如此。

那麼如何控制如何命名生成的代理類和方法?

回答

0

對於編寫該服務的人來說,這實際上更像一個問題。如果他們的操作名爲GETSTUFF,那麼你的代理操作將被命名爲GETSTUFF。

+0

是的,我知道。但服務是現狀,我無法改變它。 – 2012-02-17 19:28:00

+0

然後,實際上,你所能做的就是用你喜歡的任何名字編寫包裝方法。無論是或者,什麼都不做。 – 2012-02-17 19:35:38

-1

如果使用wsdl.exe導入WSDL,則可以使用/ parameters命令行參數傳遞帶有參數的XML文件。 該XML文件可以引用SchemaImporterExtension類。您可以編寫SchemaImporterExtension以根據您的意願格式化生成的代碼。 請參閱http://msdn.microsoft.com/en-us/library/system.xml.serialization.advanced.schemaimporterextension.aspx以瞭解SchemaImporterExtension類,您必須從中繼承您的實現,而http://msdn.microsoft.com/en-us/library/w46ccb0h.aspx爲示例程序。

+1

僅供參考:此自定義功能僅適用於XML Web服務(ASMX)**而非** WCF代理。 – 2012-02-17 14:00:38

+0

如果不使用wsdl.exe,那麼有什麼更好的選擇? – 2012-02-17 19:28:44

+0

svcutil.exe是用於此目的的正確工具。 – 2012-02-17 19:34:20