我有一個Web服務,它有一個參數類型爲Collection(Byte)的方法。 當我嘗試使用wsdl命令生成代理,但數據類型被轉換爲字節的單維數組。無法生成具有類型泛型集合數據類型的方法的wsdl文件。
所以我想創建wsdl文件,將類型作爲集合(字節)使用添加爲服務引用,但即使我指定集合類型爲Collection.objectModel仍參數具有數據類型作爲單維數組的字節。
有沒有辦法做到這一點,或手動我需要改變代理文件。
我有一個Web服務,它有一個參數類型爲Collection(Byte)的方法。 當我嘗試使用wsdl命令生成代理,但數據類型被轉換爲字節的單維數組。無法生成具有類型泛型集合數據類型的方法的wsdl文件。
所以我想創建wsdl文件,將類型作爲集合(字節)使用添加爲服務引用,但即使我指定集合類型爲Collection.objectModel仍參數具有數據類型作爲單維數組的字節。
有沒有辦法做到這一點,或手動我需要改變代理文件。
我也創建了一個Web服務,其中一個方法返回字節的集合數組。 我附上示例代碼及其生成的wsdl。希望這可以幫助你
public byte[][] GetPDFs(String searchQuery)
{
List<Byte[]> list = new List<byte[]>();
// DO YOUR WORK
return list.ToArray();
}
在WSDL
和genetated wsdl:type
是
<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用或使用添加引用)是這樣的:
[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]));
}
請讓我知道你是否需要進一步的幫助。
我曾嘗試使用高級選項中的添加服務引用 ,但仍在wdsl中,數據類型表示爲
tns:ArrayOfBase64Binary所以創建代理時,它會創建爲字節數組而不是集合(字節) – kurozakura 2010-07-27 05:39:11WSDL將始終顯示ArrayOfWhatever,因爲泛型類型不是可以用XSD和WSDL。當您從WSDL生成代碼時,您可以選擇是否生成數組,列表等。 –
jrista
2010-07-27 15:18:05
在web服務的情況下看起來像它的設計。 – kurozakura 2010-07-30 06:28:16