WCF строковый массив wsdl - PullRequest
1 голос
/ 23 июня 2011

Как мне сказать WCF использовать wsdl arrayType?Вот так:

<complexType name="ArrayOfString">
   <complexContent>
      <restriction base="soapenc:Array">
          <attribute ref="soapenc:arrayType" wsdl:arrayType="string[]"/>
      </restriction>
   </complexContent>
</complexType>

Вот что делает WCF (Не ожидается)

<complexType name="ArrayOfstring">
    <sequence>
       <element minOccurs="0" maxOccurs="unbounded" name="string" nillable="true"       type="xs:string"/>
     </sequence>
    <element name="ArrayOfstring" nillable="true" type="tns:ArrayOfstring"/>
</complexType>

Ответы [ 2 ]

1 голос
/ 24 июня 2011

Нашел решение. Я должен добавить это, чтобы заставить его работать: [XmlSerializerFormat (Style = OperationFormatStyle.Rpc, Use = OperationFormatUse.Encoded)] * ​​1001 *

0 голосов
/ 23 июня 2011

Я думаю, что WCF не поддерживает его из коробки, потому что это расширение WSDL к стандартному XSD-описанию типа данных.И XmlSerializer, и DataContractSerializer должны работать со стандартным XSD в тех случаях, когда веб-сервисы вообще не задействованы, поэтому он использует простой XSD-подход.

Если вам нужен первый подход, вы можете написать WSDL + XSD.сами или вы можете попробовать реализовать пользовательское расширение экспорта - чтобы использовать его для генерации клиента WCF, вам также понадобится специальное расширение импорта.

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