簡體   English   中英

保存在WF4 WorkflowDesigner中

[英]Saving in the WF4 WorkflowDesigner

如何在重新托管的設計器中保存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);

...在保存單個Sequence活動時,它說“類型'System.Activities.Presentation.Model.ModelItemImpl'不可見。如果類型是本地的,請在XamlReaderSettings中設置LocalAssembly字段。

是的,使用Flush()和Text獲得xaml作為字符串。 使用Save()保存到文件或流,在這種情況下不需要Flush()。

嗯,我沒用過。 API似乎有點奇怪。 但是從文檔看來,當您在WorkflowDesigner實例上調用Flush()時,它將當前工作流保存到名為Text的公共屬性中。 您應該能夠捕獲該文本並將其粘貼到數據庫中就可以了。

文檔

在獲取此值之前,請調用Flush()將當前的工作流程轉換為文本。 設置此值后,調用Load()將XAML加載到工作流中。

使用ActivityXamlServices和StringWriter將內容刷新為字符串。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM