当通过soap提供null时,.NET 2.0 Web服务创建新对象

时间:2011-07-18 12:23:46

标签: asp.net flex web-services soap asmx

我有一个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论坛还没有获得成功。

1 个答案:

答案 0 :(得分:2)

通过随机刺激修正。似乎我必须在.NET代码中的字段上放置以下属性,以使其将xsi:nil =“true”属性作为空值处理:

[System.Xml.Serialization.XmlElementAttribute(IsNullable = true)]