我有一个ASP.NET 2.0 Web服务,并在(其中包括)Adobe Flex应用程序中使用它。我有一个奇怪的问题,如果我使用soap将一个对象发送到Web服务,并且某些字段为null,则webservice实际上是在另一端创建新对象(而不是在其中放入任何数据)。
发送的XML如下所示:
<tns:Item>
<tns:Id>-1</tns:Id>
<tns:SomeField>21114</tns:SomeField>
<tns:SomeFieldThatShouldBeNull xsi:nil="true"/>
<tns:SomeFieldThatShouldBeNull2 xsi:nil="true"/>
</tns:Item>
在此示例中,Web服务将SomeFieldThatShouldBeNull和SomeFieldThatShouldBeNull2创建为新对象。对于没有发生的应用程序至关重要。可能导致这种情况的原因是什么?
到目前为止,谷歌,MSDN和ASP.NET论坛还没有获得成功。答案 0 :(得分:2)
通过随机刺激修正。似乎我必须在.NET代码中的字段上放置以下属性,以使其将xsi:nil =“true”属性作为空值处理:
[System.Xml.Serialization.XmlElementAttribute(IsNullable = true)]