2016-09-23 42 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格式返回? –

相关问题