繁体   English   中英

将Java Arraylist返回值从Java WebService转换为C#Arraylist

[英]Convert Java Arraylist return from Java WebService to C# Arraylist

在我的C#程序中,我想使用Java Web Service方法来回复java.Util.ArrayList。 我不知道如何将Java ArrayList转换为C#ArrayList。

这是Java代码

@WebMethod
@WebResult(name = "GetLastMessages")
@SuppressWarnings("unchecked")
public ArrayList<Message> getLastMessages(@WebParam(name = "MessageCount")int count) {
    ....
            ....
    return messages;
}

这是C#代码

MessagesService.MessagesService service = new MessagesService.MessagesService();
System.Collections.ArrayList arr = (System.Collections.ArrayList)service.getLastMessages(10);

我在C#中收到以下错误

Cannot convert type 'WindowsFormsApplication1.MessagesService.arrayList' to 'System.Collections.ArrayList'  

如何将这些Java ArrayList转换为C#ArrayList

绝对不是考虑到Web服务互操作性编写的Java类(Java方法的确不是那么好-它应该返回List,而不是ArrayList)。 如果可以更改,请尝试将其更改为数组(返回类型:Message [])。 非常容易做到,只需将返回行更改为:

  return messages.toArray(new Message[0]);

我认为,即使假设数组运行顺利(可能不会),这也只会带您回到询问该Message类的处理方式(我是否提到这不是在考虑Web Service互操作性的情况下编写的?)。

如果您无法更改Java类,则可能很不走运,但是您必须调用Web服务并获取原始XML,然后了解如何解析它才能知道您的选择。

Java中的ArrayList和C#中的ArrayList是非常不同的东西,您需要以一种双方都可以轻松理解的格式(例如XML)共享数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM