作为WCF web服务中的参数的嵌套列表

本文关键字:参数 列表 嵌套 WCF web 服务 作为 | 更新日期: 2023-09-27 18:21:03

我有一个WCF方法,它有一个嵌套的List参数,比如这个

public void Method(List<class1> class1Obj, List<List<SomeClass>> someClassObj)
{
  // CODE
}

在设置服务引用之后,我在客户端引用方法中得到了这个,通过它我可以调用我的WCF方法

public void Method(class1[] class1Obj, SomeClass[][] someClassObj) 
{
    base.Channel.Method(class1Obj, someClassObj);
}

现在从我的代码中调用这个方法,我可以做这个

void myServiceCaller()
{
   List<class1> class1Obj = new List<class1>();
   // Add items to class1Obj
   List<List<SomeClass>> someClassObj = List<List<SomeClass>>();
   // Add items to someClassObj
   ServiceRef.myServiceClient service = new ServiceRef.myServiceClient();
   service.Method(
               class1Obj.ToArray(), // This one is fine
               someClassObj.ToArray() // This gives me compile time error
   );  
}

如何解决此问题以将List<List<SomeClass>>转换为SomeClass[][]

作为WCF web服务中的参数的嵌套列表

当您添加服务参考并弹出对话框时,您可以单击高级按钮,并将集合类型下拉列表从System.Array更改为System.Collection.GenericList,这将更改创建的代理,并在使用集合时使用List<...>而不是[...]

此外,如果您已经添加了服务参考,您可以右键单击解决方案树中的服务参考,然后单击配置服务参考。这将显示与上述相同的"高级"对话框。