2016-09-23 81 views
0

我實現了一個C#web服務,該工具非常適合用於消費,我創建了一個Java客戶端,到目前爲止一切運行良好,直到我遇到了返回方法。事實上,我的方法應該給我一個列表,但我不能將其轉換回另一種類型的集合。 這裏是我的代碼:如何將arrayofstring轉換爲任何類型的集合

C#服務:

[WebMethod] 


    public List <string> AfficherTous() 
    {//Return implementation} 

Java客戶端:

Myservice sv = new Myservice(); 
List <String> sv = (List <String>) sv.getMonserviceSoap.AfficherTous(); 

所以我投了一個錯誤,但它工作得很好,當該方法只返回丁字褲。

+0

你可以嘗試一點改變。對於你的C#代碼,將小字符串改爲大寫字符串。 –

回答

0

您正在跨平臺使用您的服務。你可以在這裏你的列表轉換爲String []數組這樣的嘗試:

String[] myArray = list.ToArray(); 

所以你的C#的服務應該是這樣的:

[WebMethod] 

    public String[] AfficherTous() 
    { 
     // your implementation of List<String> creation 

     return list.ToArray(); 
    } 

**in java client:** 

Myservice sv = new Myservice(); 
String[] sv = (String[]) sv.getMonserviceSoap.AfficherTous(); // Line A 

現在來基礎,當一個對象被髮送過你需要確保它是Serializable的網絡。這裏你的List類和String類是按照微軟庫提供的序列化的。其次,所有通過網絡發送的數據都是以字節形式存在的。在接收端,字節數據可以再次轉換回您的類對象,如上述代碼段的行A。但是,我相信Java和C#的List類在字節表示方面有所不同,這首先導致了您的投射問題。但是這兩個String類在字節形式上應該幾乎相同。

您還可以爲您的工作使用JSON和XML格式。

0

它不起作用,該方法返回一個Arrayofstring並在此返回和String []之間進行強制轉換是不可能的。

+0

首先你應該添加評論而不是回答。 –

+0

你有沒有嘗試以json格式返回? –

相關問題