.net客户端忽略布尔类型soap请求

时间:2011-02-24 13:30:55

标签: .net web-services soap

我试图通过我的asp.net项目调用webservices方法。

我使用Fiddler来记录soap请求。但是,我发现请求中没有发送布尔类型值,其他类型工作正常。

xsd文件的定义如下:

<xs:complexType name="TestObject">
 <xs:complexContent mixed="false">
  <xs:extension base="com:TestObjectDTO">
    <xs:sequence>
      <xs:element minOccurs="1" maxOccurs="1" name="scenario" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="asap" type="xs:boolean" />
    </xs:sequence>
  </xs:extension>
</xs:complexContent>

soap请求记录为:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
    <TestObjectDTO xsi:type="TestObject" xmlns="http://ws.com/service/">
     <scenario>scenario_1</scenario>
    </TestObjectDTO>
</soap:Body>

缺少asap元素。有什么想法吗?

感谢。

2 个答案:

答案 0 :(得分:2)

<xs:element minOccurs="0" maxOccurs="1" name="asap" type="xs:boolean" />

minOccurs =“0”表示它是可选的,不需要出现在请求中。如果没有指定默认值,我会假设它默认为false,或者它可能必须由可空类型表示。

答案 1 :(得分:0)

我们刚刚遇到这个问题,看起来.NET会生成两个字段供您修改

.asap   .asapSpecified

当我们将两者都设置为true时,它可以正常工作