【问题标题】:System.Activities.Statements.AddToCollection Giving Fixed Size ErrorSystem.Activities.Statements.AddToCollection 给出固定大小错误
【发布时间】:2013-03-12 12:10:20
【问题描述】:

在我的工作流程中,我调用了一个返回列表的服务。问题是,在我的工作流程中,我使用 AddToCollection Activity 将新字符串添加到集合中,但是当我进入 Activity 时出现错误。

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

System.SZArrayHelper.Add[T](T 值) System.Activities.Statements.AddToCollection`1.Execute(CodeActivityContext 上下文) System.Activities.CodeActivity.InternalExecute(ActivityInstance 实例,ActivityExecutor 执行器,BookmarkManager 书签管理器) System.Activity.ActivityInstance.Execute(ActivityExecutor 执行器,BookmarkManager 书签管理器) System.Activities.Runtime.ActivityExecutor.ExecuteActivityWorkItem.ExecuteBody(ActivityExecutor executor, BookmarkManager bookmarkManager, Location resultLocation)

我不明白为什么(以及这是如何发生的)?这是一个错误吗?我专门返回一个列表...为什么它说它是固定大小的?!?

编辑 1:有些东西真的很奇怪……因为我原来的工作流程很大,所以我创建了一个新的、更小的工作流程,只是为了重现这个错误……但我不能!

【问题讨论】:

  • 您的服务可能正在返回一个数组,它确实是一个 IList,但无法向其中添加项目。
  • @Jota 没错!在服务配置中,我将集合设置为 System.Array!但问题依然存在……
  • 能否给出处理和返回列表的服务代码?

标签: collections workflow-foundation-4


【解决方案1】:

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

不管怎样,检查thisthis

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

listWFVariable = new List<string>(arrayReceivedFromWebService);

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-25
    • 2011-11-28
    • 1970-01-01
    • 1970-01-01
    • 2015-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多