десериализовать soap ответ с повторяющимися элементами, но без оболочки в клиенте WCF - PullRequest
0 голосов
/ 03 апреля 2020

Генератор прокси 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 [] [], я смогу прочитать ответ, но получу только первый элемент документа, но не второй.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...