如何为WCF Web服务创建ArrayOfString?

时间:2013-11-25 16:57:49

标签: c# wcf web-services

我有一个List<string>对象需要传递给WCF Web服务。 Web服务帮助程序类所需的对象类型是ArrayOfString对象。对于我的生活,我找不到将List<string>转换为ArrayOfString对象的方法。

我该怎么做?

注意

我尝试了以下几行代码。这些转换都不起作用。

List<string> strList = new List<string>();

...

ArrayOfString strs = strList;
ArrayOfString strs = strList.ToArray();
ArrayOfString strs = strList.AsEnumerable();

我还能尝试什么?

4 个答案:

答案 0 :(得分:2)

我使用此方法创建了一个Web服务:

 public List<decimal> GetData(string[] ConnectionInfo)

这些类型的WSDL转换是ArrayOfDecimal和ArrayOfString

因此,要在客户端程序中接收正确的类型,这还不够:

 decimalArray = GetServiceClient.GetData(connectionArray);

要转换为ArrayOfDecimal和ArrayOfString,我通过服务refence找到并实例化了类型

GetWebService.ArrayOfString myStrArr = new GetWebService.ArrayOfString();
GetWebService.ArrayOfDecimal myDecArr = new GetWebService.ArrayOfDecimal();

将值添加到新类型:

myStrArr.AddRange(listOfConnections);

并成功调用了这样的方法

myDecArr = GetServiceClient.GetData(myStrArr);

答案 1 :(得分:1)

创建ArrayOfList的实例。复制将列表复制到其中,如下所示: arrString.AddRange(strList);

答案 2 :(得分:0)

我使用Jaxb和Wsdl文件创建了一个Web客户端。列表参数是typeof ArrayOfstring。没有用于从List创建ArrayOfstring的构造函数。所以我得到了字符串并添加了列表元素。这是我的解决方案:

List<String> myArrayList = new ArrayList<String>();
myArrayList.add("test1");
myArrayList.add("test2");

ArrayOfsring arrayOfstring = objectFactory.createArrayOfstring();
arrayOfstring.getString().addAll(myArrayList);

答案 3 :(得分:0)

不确定它是否适用于C#,但是在Java中,您可以通过以下方式创建它:

 ArrayOfString myArrayOfString = new ArrayOfString();
 myArrayOfString.getString().addAll(Arrays.asList("your", "list", "of", "strings");