工作流程3.5活动属性在条件和其他任何地方都为空

时间:2010-08-30 16:52:18

标签: workflow-foundation workflow-activity

我有一个活动,其属性看起来像这样(它们被设置为正确的依赖属性,我只是在这里保持简单):

public List<MyType> TypeList { get; set; }
public Int32 Index { get; set; }
public MyType SelectedType { get; set; }

和执行就是这样:

SelectedType = TypeList[Index];

TypeList和Index是我从其他活动设置的值。我没有将SelectedType设置为活动属性中的任何内容,我只是让它在执行中设置。

现在我知道SelectedType正确设置的事实,我甚至可以指向它的另一个活动并从中打印出一些值。所以我非常肯定这项活动并没有错。

但是,我有一个if活动,其条件如下:

((MyActivity)GetActivityByName("activity1")).SelectedType != null

并且它的计算结果为false(意味着它将SelectedType计算为null)。我非常确定该活动强制转换是正确的(我会一直这样做),如果不是,那么在尝试访问SelectedType时我不会得到空引用异常?所以我很确定我在这里做错了什么,但由于某些原因,SelectedType在这种情况下会出现空值而在其他地方没有。

这几乎就像在运行活动之前评估条件一样,但活动在工作流程中的条件之前就已经存在,所以我不明白为什么会出现这种情况。

任何人都可以对此有所了解吗?

1 个答案:

答案 0 :(得分:0)

显然它与while循环有关,导致克隆活动。我通过将activity属性绑定到工作流属性来修复它。有关详细信息,请参阅我在工作流论坛上发布的this post