我有一个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();
我还能尝试什么?
答案 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");