2011-06-23 61 views
1

如何告訴WCF使用wsdl數組類型?就像這樣: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

我覺得WCF不支持開箱即用的,因爲這是WSDL擴展的標準XSD描述數據類型。 XmlSerializerDataContractSerializer都應該在Web服務根本不涉及的場景下使用標準XSD,因此它使用普通的XSD方法。

如果您需要第一種方法,您可以自己編寫WSDL + XSD,或者您可以嘗試實現自定義export extension - 要將其用於WCF客戶端生成,您還需要自定義導入擴展。