WCF 客户端 - 缺少数组元素

WCF Client - Missing Array Elements

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

现在一方面 wcf 没有 return 服务中的数组元素。

记录的 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" 创建了 class 但在响应中服务告诉 xmlns="" 这可能是错误吗?

解决方法是响应中的"xmlns"属性设置为空字符串是错误的,所以命名空间没有在wsdl中定义。