XML的xsi:nil不反序列化为null

时间:2018-07-25 11:43:02

标签: c# xml web-services soap xml-deserialization

我有一个C#项目,是从现有dll中反编译的。它使用Microsoft.Web.Services2和System.Web.Services。我的客户没有货源,所以您知道; D

WSDL合同有一个生成的方法:

[SoapDocumentMethod("", ParameterStyle = SoapParameterStyle.Bare, Use = SoapBindingUse.Literal)]
[return: XmlElement("getOutputMessageResponse", Namespace = "http://www.ibm.com/xmlns/prod/websphere/human-task/services/6.0")]
public XmlElement getOutputMessage([XmlElement("getOutputMessage", Namespace = "http://www.ibm.com/xmlns/prod/websphere/human-task/services/6.0")] getOutputMessage getOutputMessage1)
{
  return (XmlElement) this.Invoke("getOutputMessage", new object[1]
  {
    (object) getOutputMessage1
  })[0];
}

在代码中,我得到了:

XmlElement output = ... // getOutputMessage() invocation

if(output != null){
    // do something...
}else{
    // do something else
}

这是问题所在。输出为NEVER NULL。它要么变成:

<wn:procesResponse xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wn="http://website" />

或正确填写的XML响应。

由于null,它应该得到xsi:nil,最好的部分是-它在反编译之前就可以工作,所以我缺少一些设置或类似的设置。

您有什么想法,这可能是什么问题?

感谢您的帮助!

0 个答案:

没有答案