从.Net调用使用List <T>的Java Web Service

8 .net c# java web-services

我正在开发一个将由.Net客户端使用的Java Web服务.该服务公开了一个接受一个对象作为参数的方法,该对象有一个List类型的字段,Row类也有一个List类型的字段.

现在,当Java客户端使用此服务时,它正确地将类型视为List,但是当.Net客户端使用该服务时,我最终会调用期望数组类型为Value的数组(例如Value [] [])而不是List.

版本兼容性已设置为".Net 3.5/METRO 1.3".

有谁知道如何让它与.Net和Java客户端一样工作,因为它们接受List而不是Value [] []?

减少Web服务的版本是:

服务:

    @WebService(serviceName = "Test")
    public class Test {

    @WebMethod(operationName = "DataRequest")
    public DataResponse DataRequest(DataRequest req) {
        return new DataResponse();
    } 

}
Run Code Online (Sandbox Code Playgroud)

DataRequest:

public class DataRequest {
    public DataType datType;
    public String source;
    public List<RowInfo> rows;
    public String loginId;
}
Run Code Online (Sandbox Code Playgroud)

RowInfo:

public class RowInfo {
   public List<Value> valueList;
}
Run Code Online (Sandbox Code Playgroud)

值:

public class Value {    
    public String name;
    public String value;
}
Run Code Online (Sandbox Code Playgroud)

在我的.Net客户端上,当我尝试构建请求对象时,它将FeeDataRequest的rows字段视为Value [] []而不是List.

已配置.Net中的服务引用,以便集合类型为System.Collections.Generic.List.

关于如何使.Net正确看到这一点的想法?

小智 0

您所需要做的就是在需要 List 的地方使用数组。你不必担心任何其他事情