J'ai également créé un service web dans lequel une méthode retourne un tableau de collection d'octets. Je joins un exemple de code et son wsdl généré. Espérons que cela peut vous aider à
public byte[][] GetPDFs(String searchQuery)
{
List<Byte[]> list = new List<byte[]>();
// DO YOUR WORK
return list.ToArray();
}
et genetated wsdl:type
dans wsdl est
<wsdl:types>
<s:schema elementFormDefault="qualified" targetNamespace="http://TDS.elixir.com/">
<s:element name="GetPDFs">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="searchQuery" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="GetPDFsResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="GetPDFsResult" type="tns:ArrayOfBase64Binary" />
</s:sequence>
</s:complexType>
</s:element>
<s:complexType name="ArrayOfBase64Binary">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="base64Binary" nillable="true" type="s:base64Binary" />
</s:sequence>
</s:complexType>
</s:schema>
</wsdl:types>
et code généré par proxy (wsdl.exe ou en utilisant ajouter une référence) est comme:
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetPDFs", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
public byte[][] GetPDFs(string searchQuery) {
object[] results = this.Invoke("GetPDFs", new object[] {
searchQuery});
return ((byte[][])(results[0]));
}
S'il vous plaît laissez-moi savoir si vous avez besoin d'aide supplémentaire.
J'ai essayé que l'utilisation Ajouter un service de référence dans l'option avancée, mais toujours en WDSL le type de données est représenté comme tns: ArrayOfBase64Binary donc quand un proxy est créé, il est créé comme un tableau de Bytes au lieu de Collection (of Byte) –
kurozakura
Le WSDL montrera toujours un ArrayOfWhatever, comme les types génériques ne sont pas un concept qui peut être représenté avec XSD et WSDL. Lorsque vous générez du code à partir d'un WSDL, vous pouvez choisir de générer des tableaux, Liste, etc. –
jrista
On dirait que c'est par conception dans le cas de webservice. – kurozakura