代码之家  ›  专栏  ›  技术社区  ›  Andrew

保存在WF4 WorkflowDesigner中

  •  2
  • Andrew  · 技术社区  · 16 年前

    如何在重新承载的设计器中保存WF4工作流的XAML, 写入文件?我想将序列化的工作流作为XML字符串存储在数据库中。

    给定一个名为w的WorkflowDesigner实例,这将保存到一个文件:

    WorkflowDesigner.Flush();
    w.Save("filename.xaml");
    

    WorkflowDesigner.Flush();
    var modelService = WorkflowDesigner.Context.Services.GetService<ModelService>();
    var workflow = modelService.Root;
    var xml = XamlServices.Save(workflow);
    

    ... 在保存单个序列活动时,它会显示“Type”系统活动演示.模型.ModelItemImpl“不可见。如果类型是本地的,请在XamlReaderSettings中设置LocalAssembly字段。

    3 回复  |  直到 16 年前
        1
  •  3
  •   Maurice    16 年前

    是的,使用Flush()和Text将xaml作为字符串获取。使用Save()保存到文件或流,这种情况下不需要Flush()。

        2
  •  2
  •   user1228 user1228    16 年前

    Flush() 关于 WorkflowDesigner ,它将当前工作流保存到名为 Text . 你应该能够抓取文本并将其粘贴到数据库中。

    从 docs :

    获取此值之前,请调用 Flush()转换当前 值,调用Load()加载XAML 进入工作流。

        3
  •  1
  •   Isaac Yuen    16 年前

    使用 ActivityXamlServices 和一个StringWriter将内容刷新为字符串。