Я также создал веб-сервис, в котором метод возвращает массив байтов.Я прилагаю пример кода и его сгенерированный WSDL.Надеюсь, что это может помочь вам
public byte[][] GetPDFs(String searchQuery)
{
List<Byte[]> list = new List<byte[]>();
// DO YOUR WORK
return list.ToArray();
}
и сгенерировано wsdl:type
в wsdl равно
<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>
, а сгенерированный прокси-код (wsdl.exe или с помощью ссылки add) выглядит так:*
[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]));
}
Пожалуйста, дайте мне знать, если вам нужна дополнительная помощь.