Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何配置WebService以返回ArrayList而不是Array?_C#_Java_Wcf_Web Services_Jax Ws - Fatal编程技术网

C# 如何配置WebService以返回ArrayList而不是Array?

C# 如何配置WebService以返回ArrayList而不是Array?,c#,java,wcf,web-services,jax-ws,C#,Java,Wcf,Web Services,Jax Ws,我有一个在jax ws上实现的java web服务。此web服务返回用户的通用列表。它的工作非常好:) 无状态(name=“AdminToolSessionEJB”) @RemoteBinding(jndbinding=“AdminToolSessionRemote”) @远程(AdminToolSessionRemote.class) @网络服务 公共类AdminToolSessionBean实现AdminToolSessionRemote{ ... @WebMethod(operationN

我有一个在jax ws上实现的java web服务。此web服务返回用户的通用列表。它的工作非常好:)

无状态(name=“AdminToolSessionEJB”) @RemoteBinding(jndbinding=“AdminToolSessionRemote”) @远程(AdminToolSessionRemote.class) @网络服务 公共类AdminToolSessionBean实现AdminToolSessionRemote{ ... @WebMethod(operationName=“GetAllUsers”) @WebResult(name=“AllUsers”) 公共列表getAllUsers(){ 返回userSessionRemote.getAllUsers(); } ... } @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name=“User”) 公共类用户扩展BasicDataTransferObject{ ... @xmlement(name=“Groups”) 私人名单组; ... } 但我将在.Net应用程序中使用此web服务。在VS2005、VS2008或VS2010中将此web服务添加为wcf服务或web服务时,VS生成数组而不是od通用列表“组[]组”。我将“配置服务引用…”对话框中的“集合类型”更改为“System.Collections.Generic.List”,但VS生成数组:(


我需要VS生成泛型列表或ArrayList,我应该怎么做?

我建议不要在Web服务中使用特定于语言的构造,因为Web服务是不可知语言的

如果你真的想,但你不应该,你将不得不写一个特定的序列化器/反序列化器,你不能确定它将在所有的语言工作


我会坚持使用数组,然后用您选择的语言编写一个包装器。

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

private LineItems LineItemsField;
[DataMember(Order=13, EmitDefaultValue=false)]
public LineItems LineItems {
    get { return this.LineItemsField; }
    set { this.LineItemsField = value; }
}
[CollectionDataContract(Namespace="")]
public class LineItems : List<LineItem>
{
}
LineItems
是另一个C类,定义如下:

private LineItems LineItemsField;
[DataMember(Order=13, EmitDefaultValue=false)]
public LineItems LineItems {
    get { return this.LineItemsField; }
    set { this.LineItemsField = value; }
}
[CollectionDataContract(Namespace="")]
public class LineItems : List<LineItem>
{
}
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
类本身是在其他地方定义的。希望这会有所帮助。

感谢您的帮助,是的,在.Net中,web服务会生成类似于列表和集合示例的WSDL。但我无法通过jaxb生成此WSDL,为了测试,我编写了一个XSD文件,并生成了一个类似您所说的结构。不幸的是,这是一个方便的WSDLsn也不会生成列表。没问题,我的同事编写了一个映射器,将我们的DTO映射到我们想要的模型。这是一个很好的解决方法,但每次我有空时,都会再次测试您的想法。