0

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

我正在为每个(代码活动和活动设计器)文件构建的任何活动执行以下操作,并写入:

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

....ETC

任何帮助?

4

1 回答 1

1

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

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

完成此操作后,您可以创建ToolboxItemWrapper传入activityInstance.GetType().

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

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

于 2011-07-06T15:26:07.750 回答