在WCF服务参考中更改Casing

时间:2010-12-26 18:01:32

标签: wcf wcf-client

我正在创建一个用Java编写的Web服务的服务引用。生成的类现在遵循Web服务中使用的Java大小约定,例如类名是camelCase而不是PascalCase。

有没有办法从服务参考中获得所需的套管?

澄清:

使用基于WSE的服务,可以修改生成的Reference.cs以提供.NET标准套管,并使用XmlElementAttribute映射到外部Web服务提供的Java命名,如下所示:

[System.Xml.Serialization.XmlElementAttribute("resultType", Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
[System.Runtime.Serialization.DataMember]
public virtual MyResultType ResultType
{ ... }

如果不编写自定义代码来生成代理代码或在生成代理代码后对其进行修改,那么维护非常方便。

我所追求的是一个或多个选项,用于呈现WCF生成的客户端代理,以使用.NET套件约定调用应用程序,实现与之前使用WSE相同的功能。希望减少手动操作。

1 个答案:

答案 0 :(得分:0)

好吧,既然你的WCF客户端代理是部分类,你总是可以为同一个类添加第二个文件,为每个PascalCasedMethodName实现javaCasedMethodName,然后只需从新方法中调用Java方法。

public partial class MyClientProxy
{ 
   ......
   public MyResultType GetResultType(string inputParam)
   { 
       return this.getResultType(inputParam);
   }
   ......
}

似乎有点多余 - 但我认为这应该真的有用。由于您的代码存储在一个单独的文件中,因此如果您重新创建客户端代理,它将不会被覆盖 - 并且因为它是部分类的第二部分,所以它将“合并到”客户端代码的类定义中打电话。