在我的C#程序中,我想使用Java Web Service Method来回复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
答案 0 :(得分:1)
这绝对不是一个用Web服务互操作性编写的Java类(也不是Java方法的优点 - 它应该返回List,而不是ArrayList)。如果可以更改它,请尝试将其更改为数组(返回类型:Message [])。很容易做到,只需将返回行更改为:
return messages.toArray(new Message[0]);
我认为这只会引导你回到SO,询问如何处理Message类(我是否提到过这不是用Web Service互操作性编写的?),即使假设阵列顺利进行(可能没有)
如果您无法更改Java类,那么您可能非常不走运,但您必须调用Web服务并获取原始XML,并了解如何解析它以了解您的选项是什么
答案 1 :(得分:0)
Java中的ArrayList和C#中的ArrayList是非常不同的东西,您需要以双方都能轻易理解的格式共享数据,例如: XML。