【问题标题】:Workflow rehosted designer工作流重新托管设计器
【发布时间】:2012-09-11 15:09:01
【问题描述】:

我希望我能理解将 xaml 文件加载到重新托管的设计器中的工作原理。取决于 xaml 定义,我得到不同的结果。

  1. Xaml,文件中的根节点是包含流程图的 Activity。在创建设计器之后使用 desinger.Load(xamlFileName) 和 (new DesignerMetadata).Register() 就足够了(有人知道那是什么魔法吗?)在设计器中,我得到了类似于 Visual Studio 编辑器的工作流程。李>
  2. Xaml,根节点是流程图本身。相同的步骤只给了我一个设计器中的裸活动。我尝试在活动构建器according to this(我有类似的问题)中包装工作流。组件没有问题(至少我是这么认为的),没有例外。我无法让它像之前那样工作。

保存在 Visual Studio 中的 xaml 和保存在重新托管的设计器中的 xaml 有什么区别吗?
ActivityXamlServices.Load 有时返回 DynamicActivity,有时返回目标工作流。它取决于什么?

感谢您的支持。

【问题讨论】:

  • 是的。简单的解决方案是让 WorkflowDesigner.Load() 从磁盘中获取您的文件。
  • ActivityDesigner 没有 Load 方法。
  • 这就是我正在做的事情,但有时它会像它应该的那样工作,另一种则不是。
  • 它不起作用的问题是我使用了来自不同命名空间的 DesignerMetadata(如果只有一个引用的程序集具有该类,则没有歧义)

标签: c# workflow-foundation-4 workflow-rehosting


【解决方案1】:

事实证明,这取决于提供给重新托管设计器的参数。如果我从新流程图开始,xaml 中的根节点将是流程图。稍后将此类文件加载到设计器时,您不需要包装它。如果您从 ActivityBuilder 开始,您可能需要在加载 xaml 之前使用 WorkflowInspectionServices 来获取工作流。
有时要在设计器中正确显示工作流程,您需要从正确的程序集中使用 (new DesignerMetadata).Register(),但这并不总是必要的,我不确定它依赖于什么。

【讨论】:

    猜你喜欢
    • 2011-02-02
    • 2010-09-16
    • 2010-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多