WCF客户端 - 缺少数组元素

时间:2015-05-05 10:16:21

标签: arrays wcf

使用.net 4.5和WCF,我可以访问数据服务。

现在,对于一部分,wcf不会返回服务中的数组元素。

记录的xml响应的部分看起来像这样

<v1:itemParts>
  <v1:itemPart xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="v1:foundItemPart">
    <v1:frId>1603795000</v1:frId>
    <v1:tId>509515001</v1:tId>
    <v1:date1>2015-05-19T07:15:00+02:00</v1:date1>
    <v1:sub>
      <v1:id>2006960476</v1:id>
    </v1:sub>
    <v1:aviableItems>
      <entry xmlns="">
        <key>NO</key>
        <value>14</value>
      </entry>
    </v1:aviableItems>
  </v1:itemPart>
</v1:itemParts>

缺少的部分是 aviableItems ,它是作为没有项目的空数组生成的

wsdl将此部分定义如下:

<xs:element name="aviableItems">
  <xs:complexType>
    <xs:sequence>
      <xs:element maxOccurs="unbounded" minOccurs="0" name="entry">
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="0" name="key" type="v1:seatClassEnum"/>
            <xs:element minOccurs="0" name="value" type="xs:int"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
</xs:element>

生成的类型定义如下:

  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="urn:myServer.it/v1")]
    public partial class aviableItems: object, System.ComponentModel.INotifyPropertyChanged {

我无法弄清楚为什么数组中没有生成你的物品。 wsdl中有定义错误吗?

我可以看到,visual studio使用命名空间“urn:myServer.it/v1”创建了类,但在响应中,服务告诉 xmlns =“”这可能是错误吗?

0 个答案:

没有答案