c# - 如何配置 WebService 返回 ArrayList 而不是 Array?

标签 c# java wcf web-services jax-ws

我有一个在 jax-ws 上实现的 java Web 服务。此 Web 服务返回用户的通用列表。它运行得很好:)。

@Stateless(name = "AdminToolSessionEJB")
@RemoteBinding(jndiBinding = "AdminToolSessionRemote")
@Remote(AdminToolSessionRemote.class)
@WebService
public class AdminToolSessionBean implements AdminToolSessionRemote {
...
@WebMethod(operationName = "GetAllUsers")
@WebResult(name = "AllUsers")
public List<User> getAllUsers() {
    return userSessionRemote.getAllUsers();
}
...
}

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "User")
public class User extends BasicDataTransferObject {
...
@XmlElement(name = "Groups")
private List<Group> groups;
...
}

但我将在 .Net 应用程序中使用此 Web 服务。当我在 VS2005、VS2008 或 VS2010 中将此 Web 服务添加为 wcf 服务或 Web 服务时,VS 生成数组而不是通用列表“Group[] Groups”。我将“配置服务引用...”对话框中的“集合类型”更改为“System.Collections.Generic.List”,但 VS 生成数组:(。

我需要VS生成通用列表或ArrayList,我应该做什么?

最佳答案

我不知道如何在java中定义它。但是,在我的 C# 服务中,我的主要交易参数(采购订单)包含如下定义的行项目列表:

private LineItems LineItemsField;
[DataMember(Order=13, EmitDefaultValue=false)]
public LineItems LineItems {
    get { return this.LineItemsField; }
    set { this.LineItemsField = value; }
}

LineItems 是另一个 C# 类,定义如下:

[CollectionDataContract(Namespace="")]
public class LineItems : List<LineItem>
{
}

LineItem 是包含订单项字段的实际类。

LineItems 在 WSDL 中显示为:

<s:element minOccurs="0" maxOccurs="1" name="LineItems" type="tns:ArrayOfLineItem" />

ArrayOfLineItem 定义为:

<s:complexType name="ArrayOfLineItem">
    <s:sequence>
        <s:element minOccurs="0" maxOccurs="unbounded" name="LineItem" nillable="true" type="tns:LineItem" />
    </s:sequence>
</s:complexType>

当然,LineItem 类本身是在其他地方定义的。希望这会有所帮助。

关于c# - 如何配置 WebService 返回 ArrayList 而不是 Array?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2171457/

相关文章:

java - HttpServletRequest 重用

c# - RESTful (Web API) 服务中的非 CRUD 操作

c# - 使用 REST 为带有图像的复杂对象提供服务

c# - Xunit 为每个新测试创建新的测试类实例(使用 WebDriver 和 C#)

c# - 在不知道命名空间的情况下使用 LINQ 搜索 XDocument

java - 由于 build.gradle Android Studio 中的错误,应用程序崩溃

java - MutilMap 中单键的返回方法

c# - 使用 ASP.NET GridView 时,DataSource 和 DataSourceID 均定义错误

c# - 当我显示它时,我的自定义 progressBar 表单挂起

c# - WCF UserNamePasswordValidator - 验证后访问凭据