如何从嵌套活动中访问Property参数的值?

时间:2014-01-13 15:43:19

标签: workflow workflow-foundation-4

我确信这里有一些我不知道的东西,但很多谷歌搜索都没有为我揭开它。情况是这样的:

我们创建了一个自定义工作流设计器,允许最终用户根据我们定义的各种自定义活动(Review,Submit,Notify等)构建工作流定义。这些定义(Xaml)被保存到Db并用于为我们系统中长时间运行的进程创建工作流实例。用户可以在每个用户上设置属性(例如,Review具有属性参数:AllowedRoles)。问题是,我无法将这些属性传递给嵌套活动。

例如:

Review有一个内部活动'WriteStatus',需要访问Review上的'AllowedRoles'属性。如果'AllowedRoles'被定义为属性,则WriteStatus不能“看到”它来分配它的值。我可以将它从Property更改为InArgument,但是我无法在设计器中将值映射到属性和从属性中映射值(这些属性应该是定义的一部分,而不是与任何特定上下文相关联)。

有没有人遇到过这个问题,或者就如何以不同的方式解决问题提出建议?

提前致谢!

劳斯莱斯

1 个答案:

答案 0 :(得分:0)

通过将XAML活动转换为代码,我能够绕过属性vs InOurArgument问题。这允许我在代码中设置活动的属性,然后将它们内联传递给内部活动。可能有更好的方法,但到目前为止它还运作良好。

public sealed class Test : Activity
{
    public string Stuff { get; set; } // CLR Property

    public Test()
    {
        Implementation = () => new WriteLine {Text = Stuff};
    }
}
相关问题