0

我有一个 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[][]

4

1 回答 1

1

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

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

于 2013-07-05T08:21:13.577 回答