Генератор прокси WCF генерирует публичные c мета-документы [] [] для ответа веб-службы с повторяющимися элементами без обертки:
<docs>
<meta>
<key>1</key>
<value>a</value>
</meta>
<meta>
<key>2</key>
<value>b</value>
</meta>
</docs>
<docs>
<meta>
<key>2</key>
<value>a</value>
</meta>
<meta>
<key>3</key>
<value>b</value>
</meta>
</docs>
wsdl определяется следующим образом:
<xs:complexType name="result">
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="docs" nillable="true" type="tns:Doc"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="Doc">
<xs:sequence>
<xs:element maxOccurs="unbounded" name="meta" type="tns:Meta"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="Meta">
<xs:sequence>
<xs:element name="key" type="xs:string"/>
<xs:element name="value" type="xs:string"/>
</xs:sequence>
</xs:complexType>
, поэтому полевые документы должны быть массивом Do c, который является массивом Meta, но прокси вместо этого генерирует Meta [] []. Как я могу это исправить?
Если я изменю сгенерированный прокси-сервер, поместив Met [] вместо Meta [] [], я смогу прочитать ответ, но получу только первый элемент документа, но не второй.