【问题标题】:Extend Workflow Foundation FlowChart扩展工作流基础流程图
【发布时间】:2011-03-13 00:00:17
【问题描述】:

我想创建一个基于 FlowChart 活动的自定义可重用工作流基础活动。所有内置类都是密封的,因此我无法继承它。这些活动将在重新托管工作流设计器并由非开发人员使用的应用程序中使用。我可以从 NativeActivity 类继承。但是,我需要能够像 FlowChart 活动一样将活动拖放到此自定义活动中。

总结:是否有人有关于如何实现自定义工作流活动的示例或想法,该活动的行为就像 FlowChart(在设计器中和运行时)但允许我在幕后使用自己的自定义逻辑扩展类?

我想我可能只是在寻找或重用 FlowChart 使用的同一个 ActivityDesigner。这可能吗?

【问题讨论】:

  • 您到底在寻找什么行为?它以何种方式表现得像流程图?
  • 我对此也很好奇,我认为答案与实现自定义活动和自定义活动设计器类有关。我认为流程图视图是 WF 设计者与自定义活动设计类交互的一部分。
  • 我什至不确定哪个 ActivityDesigner 用于制作流程图。
  • 如果我可以简单地继承 FlowChart 活动,那将是理想的。我想向 FlowChart 添加自定义逻辑以跟踪与我们的业务相关的特定数据。我正在开发一个可以重新托管工作流设计器的应用程序。非开发人员会使用它,所以我不想简单地拥有包含具有该逻辑的活动的流程图模板,因为用户可以删除它们。我希望他们能够拖放预先构建的 FlowChart 组件,然后允许他们将一些自定义活动拖放到该自定义 FlowChart 活动中(即 FTP 下载等)
  • 我尝试过的另一件事是创建一个继承“NativeActivity”的自定义 Activity。我认为可行的是将以下属性添加到类中;但是 FlowChartDesigner 类似乎不是公开的。 [Designer(typeof(System.Activities.Core.Presentation.FlowChartDesigner))] 公共类 TestActivity : NativeActivity {...}

标签: workflow-foundation flowchart


【解决方案1】:

如果我必须这样做,我可能会进入 Reflector 并找到我想要修改的类,然后将其复制并粘贴到 VS 中的项目中。此时,我将编译,找出它依赖的其他内部/私有类,然后复制它们。在迭代了几十次之后,我将有一些可以编译且没有错误的东西,我可以开始将它集成到我的系统的其余部分中。

它并不漂亮,但我认为没有其他方法可以扩展内部或私有类。

当然你可以做这整个事情,只是发现设计器有一些特殊情况的代码来寻找你想要扩展的特定类,这样就不可能得到你想要的行为。

【讨论】:

  • 越来越多地出现我正在寻找的是告诉我的新自定义活动(它继承自 NativeActivity 就像 FlowChart 活动)通过添加 [Designer (...)] 属性;但是,FlowChart Designer 似乎不是公共的或没有公共构造函数,所以我似乎无法理解它。我基本上想要 Workflow Designer 中的 FlowChart 设计器功能,但如果有意义的话,还需要自定义 Native Activity 功能。
【解决方案2】:

摇滚! 我认为您可以使用这种方法: 您有一些无法更改的内置密封代码活动(flowstep、flowdecision),但您可以为它们创建其他设计器(即 UI)。我设法通过添加触发器来应用颜色效果来自定义流程决策设计师的这种方式。此外,您可以使用基 ActivityDesigner 类覆盖自动为其分配条件(例如,通过将其绑定到内部流程图变量)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-07
    • 2018-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多