System.Activities.Statements.AddToCollection给出固定大小错误

时间:2013-03-12 12:10:20

标签: collections workflow-foundation-4

在我的工作流程中,我调用了一个返回List的服务。问题是在我的工作流程中,我使用AddToCollection Activitie向集合中添加一个新字符串,但是当我到达活动时,我得到了一个错误。

调试和检查我得到了工作流日志,现在我看到错误是“收集是固定大小的”。这是完整的日志:

  

System.SZArrayHelper.Add [T](T值)   System.Activities.Statements.AddToCollection`1.Execute(CodeActivityContext context)   System.Activities.CodeActivity.InternalExecute(ActivityInstance实例,ActivityExecutor执行器,BookmarkManager bookmarkManager)   System.Activities.ActivityInstance.Execute(ActivityExecutor executor,BookmarkManager bookmarkManager)   System.Activities.Runtime.ActivityExecutor.ExecuteActivityWorkItem.ExecuteBody(ActivityExecutor executor,BookmarkManager bookmarkManager,Location resultLocation)

我没有得到的是为什么(以及这是怎么发生的)?这是一个错误吗?我特意返回一个List ...为什么它说它是固定大小的?!?

编辑1:有一些非常奇怪的东西......因为我的原始工作流程非常大,我创建了一个新的,较小的,只是为了重现这个错误...我不能!

1 个答案:

答案 0 :(得分:1)

我的猜测是WCF在通过网络发送列表之前将列表序列化为数组。不知道是否可以避免。

无论如何,请检查thisthis

您还可以在工作流程中创建新变量,并在从服务中收到时为其分配一个列表:

listWFVariable = new List<string>(arrayReceivedFromWebService);

现在您可以对其进行添加操作。