2011-06-23 19 views
1

WCFにwsdl arrayTypeを使用するように指示する方法を教えてください。このように:WCF wsdl文字列配列

<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> 

答えて

1

解決策が見つかりました。これを動作させるために追加する必要があります。[XmlSerializerFormat(Style = OperationFormatStyle.Rpc、Use = OperationFormatUse.Encoded)]

0

私はそれが標準のXSDの説明にWSDLの拡張機能であるため、WCFは、箱から出して、それをサポートしていないと思うやっていることですデータ・タイプ。 XmlSerializerDataContractSerializerは、Webサービスがまったく関与していないプレーンなXSDアプローチを使用するシナリオでは標準のXSDで動作するはずです。

最初のアプローチが必要な場合は、自分自身でWSDL + XSDを作成するか、カスタムexport extensionを実装することができます.WCFクライアント生成用にカスタムインポート拡張が必要です。