C#服务参考Java - > C#

时间:2011-11-03 00:31:54

标签: c# java service wsdl

首先让我说这是一个不太理想的情况。我没有原始WSDL的副本来识别发生了什么变化;我也在与那些无法提供帮助的开发人员合作。我的应用程序是在Visual Studio 2010中开发的,它使用了用Java编写的服务端点。

我有一个带有服务引用的C#应用​​程序,会随意调用它的Widget。 Widget有一个方法DoWork,它接受四个参数,argument01,argument02,argument03& argument04。

我生成的C#代码的方法签名是这样的

public DoWorkResponse DoWork(string argument01, int argument02, bool argument03, int argument04)

最近添加了一种新方法,我被告知要更新我的参考资料。当我这样做时,我的签名从上面改为:

public DoWorkResponse DoWork(DoWork DoWork1)

DoWork在哪里

partial class DoWork
{
    string argument01;

    int argument02;

    bool argument03;

    int argument04;

}

对不起,我无法提供原始代码,但大部分人都明白这是不可能的。

所以基本上我正在寻找一些关于java端可能发生什么变化以使Visual Studio以不同方式生成的信息。

提前致谢!

1 个答案:

答案 0 :(得分:2)

可能SOAPBinding注释的parameterStyle元素已更改,使参数样式裸露而不是包装。他们可以尝试将其添加到服务定义中:

@SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.WRAPPED)  

他们的SOAP版本也可能已经改变。我不是Java Web服务的专家,但是this discussion提供了有关SOAP和Java Web服务的信息。

如果他们不能或不愿意在他们的最后进行这些更改,您可以控制客户端的绑定。见.NET Framework Support for SOAP Formats。基本上,您可以使用wsdl.exe使用其他命令行参数从WSDL生成类。

另一方面,他们的源代码是否有版本控制?当然,他们的历史将反映他们对他们的服务或参数做出了哪些改变。