我确信这里有一些我不知道的东西,但很多谷歌搜索都没有为我揭开它。情况是这样的:
我们创建了一个自定义工作流设计器,允许最终用户根据我们定义的各种自定义活动(Review,Submit,Notify等)构建工作流定义。这些定义(Xaml)被保存到Db并用于为我们系统中长时间运行的进程创建工作流实例。用户可以在每个用户上设置属性(例如,Review具有属性参数:AllowedRoles)。问题是,我无法将这些属性传递给嵌套活动。
例如:
Review有一个内部活动'WriteStatus',需要访问Review上的'AllowedRoles'属性。如果'AllowedRoles'被定义为属性,则WriteStatus不能“看到”它来分配它的值。我可以将它从Property更改为InArgument,但是我无法在设计器中将值映射到属性和从属性中映射值(这些属性应该是定义的一部分,而不是与任何特定上下文相关联)。
有没有人遇到过这个问题,或者就如何以不同的方式解决问题提出建议?
提前致谢!
劳斯莱斯
答案 0 :(得分:0)
通过将XAML活动转换为代码,我能够绕过属性vs InOurArgument问题。这允许我在代码中设置活动的属性,然后将它们内联传递给内部活动。可能有更好的方法,但到目前为止它还运作良好。
public sealed class Test : Activity
{
public string Stuff { get; set; } // CLR Property
public Test()
{
Implementation = () => new WriteLine {Text = Stuff};
}
}