Java 将SOAP响应反序列化为生成的类C#

Java 将SOAP响应反序列化为生成的类C#,java,c#,web-services,soap,deserialization,Java,C#,Web Services,Soap,Deserialization,我们正在与第三方集成,并且在反序列化从请求获得的响应时遇到问题。从fiddler那里,我可以看到这样的反应: <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body> <ns2:updateItemsResponse xmlns:ns2="http://ThirdParty/dmn/items/1.1"> <fileId>bd6e

我们正在与第三方集成,并且在反序列化从请求获得的响应时遇到问题。从fiddler那里,我可以看到这样的反应:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body>
  <ns2:updateItemsResponse xmlns:ns2="http://ThirdParty/dmn/items/1.1">
     <fileId>bd6e7d83-8bfu-4573-fe32-c67c04355dd0</fileId>
     <fileName>12345.MBG_Items.002.2016-10-26-16-23-35.xml</fileName>
  </ns2:updateItemsResponse>
我们知道web服务是用Java编写的,我们在生成类文件时遇到了一些问题——在我们能够使用svcutil.exe创建类文件之前,我们提供的wsdl需要一些技巧。因此,我认为我需要在生成的文件中进行一些调整

我已经在这方面做了一些搜索,我猜这里的问题是名称空间,但我无法让它工作。我尝试过更改名称空间、删除名称空间、更改fileId和fileName的顺序,但这些都没有起到任何作用

有人能看到我可能丢失的任何明显的东西吗?它快把我逼疯了

编辑:也尝试过将文件ID和文件名更改为XmlElement,但仍然得到空响应。

Eureka

所以属性是错误的——在fileId和fileName上。只是需要把它们改成

[System.ServiceModel.MessageBodyMemberAttribute(Name = "fileId", Namespace = "", Order = 0)]
    public string fileId;

    [System.ServiceModel.MessageBodyMemberAttribute(Name = "fileName", Namespace = "", Order = 1)]
    public string fileName;

现在我可以反序列化响应。

fileId和fileName是否需要名称空间限定属性?他们似乎没有在fiddler输出中使用名称空间。我已经尝试删除名称空间属性。但是没有快乐!尝试添加此属性:[System.Xml.Serialization.xmlementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]谢谢@IanofOz,刚刚尝试过,但仍然没有乐趣。对不起,我想我不能再添加任何内容了。。。
[System.ServiceModel.MessageBodyMemberAttribute(Name = "fileId", Namespace = "", Order = 0)]
    public string fileId;

    [System.ServiceModel.MessageBodyMemberAttribute(Name = "fileName", Namespace = "", Order = 1)]
    public string fileName;