如何设置用于生成代理类的模式

时间:2012-02-17 09:49:52

标签: c# wcf wsdl code-generation webservice-client

我正在使用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添加服务引用时生成的相应代理类,也是如此。

那么如何控制生成的代理类和方法的命名方式呢?

2 个答案:

答案 0 :(得分:0)

对于编写该服务的人来说,这实际上是一个问题。如果他们的操作名为GETSTUFF,那么您的代理操作将命名为GETSTUFF。

答案 1 :(得分:-1)

如果使用wsdl.exe导入WSDL,则可以使用/ parameters命令行参数传递带参数的XML文件。 该XML文件可以引用SchemaImporterExtension类。您可以编写SchemaImporterExtension以根据您的意愿格式化生成的代码。 有关您必须从中继承实现的SchemaImporterExtension类,请参阅http://msdn.microsoft.com/en-us/library/system.xml.serialization.advanced.schemaimporterextension.aspx,对于示例程序,请参阅http://msdn.microsoft.com/en-us/library/w46ccb0h.aspx