gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 22:47:38 26 4
gpt4 key购买 nike

我有一个在 jax-ws 上实现的 java 网络服务。此 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 生成数组而不是 od 通用列表'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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com