我实现了一个非常适合使用的C# web服务,我用Java创建了一个客户端,到目前为止一切都运行得很好,直到我在方法的返回上遇到了一系列问题。实际上,我的方法应该向我发送一个列表,但我不能将其转换回不同类型的集合。下面是我的代码:
C#服务:
[WebMethod]
public List <string> AfficherTous ()
{/ / Return implementation}Java客户端:
Myservice sv = new Myservice ();
List <String> sv = (List <String>) sv.getMonserviceSoap.AfficherTous ();所以我抛出了一个错误,但当方法只返回一个丁字裤时,它工作得很好。
发布于 2016-09-23 16:46:47
您正在跨平台使用您的服务。您可以尝试将列表转换为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现在来看基础知识,无论何时通过网络发送对象,都需要确保它是可序列化的。在这里,您的List类和String类被序列化,就像Microsoft的库所提供的那样。其次,所有通过网络发送的数据都是以字节形式发送的。在接收端,字节数据可以再次转换回您的类对象,如上面代码片段的行A所示。然而,我相信java和C#的List类在字节表示上是不同的,这首先导致了你的类型转换问题。但是这两个字符串类在字节形式中应该几乎相同。
您还可以在工作中使用JSON和XML格式。
发布于 2016-09-23 18:08:56
它不起作用,该方法返回一个Arrayofstring,并且不可能在此返回和String []之间进行转换。
https://stackoverflow.com/questions/39655644
复制相似问题