由活动文件构建的自定义活动

时间:2011-07-06 14:59:55

标签: workflow-foundation-4 custom-activity

如何在Reshosted工作流设计器中使用自定义代码(活动文件而不是codeactivity,而不是activitydesginer)?

我正在为任何活动执行以下操作,我为每个活动(codeactivity& activitydesginer)构建文件,并且wirte:

            new ToolboxCategory("new Toolbox")
                {                        
                   Tools=
                   {
                        new ToolboxItemWrapper(typeof(Flowchart)),
                        new ToolboxItemWrapper(typeof(SimpleWebDesigner.TEST)),

....等

AnyHelp?

1 个答案:

答案 0 :(得分:1)

如果您正在讨论加载从松散的xaml文件加载的Activity,则可以执行此操作。

您必须在运行时使用ActivityXamlServices类来Load(filename)该文件。执行此操作时,您将获得反序列化的Activity实例。当然,您必须在AppDomain中加载任何相关的程序集(在xaml文件中定义的Activities引用的任何程序集),或者可以加载到Fusion加载程序可以找到它们的位置。

执行此操作后,您可以创建ToolboxItemWrapper传递activityInstance.GetType()

有一件事,因为Activity xaml文件是一个包含其他活动的Activity,您将获得默认的Designer,它只显示一个空白标题。当你将它们放在设计图面上时,没有简单的方法*扩展设计器中xaml文件中定义的子活动。

*我相信你可以构造一个实现IActivityTemplateFactory的类,你可以传递给ToolboxItemWrapper,它可以传递你的xaml文件中定义的根Activity,这样当你拖放项目时从工具箱中,它将自动添加xaml文件中定义的所有子活动。但我从来没有这样做过,也不确定你是否可以。