首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

WF 4.0 運行時從 XAML 動態加載工作流

     編輯:關於.NET

WF 4.0 預設編譯期將 XAML 工作流編譯為 .NET 類型,但運行時動態加載 XAML(如從數據庫、文件系統、用戶設計器)是實現靈活業務流程引擎的關鍵。ActivityXamlServices 提供了開箱即用的動態加載能力。

最簡單用法:文件路徑直載

Activity workflow = ActivityXamlServices.Load("YourWorkflow.xaml");

返回 DynamicActivity 實例,封裝完整流程定義,可直接傳給 WorkflowInvoker 或 WorkflowApplication 執行。

進階:引用本地程序集中的自定義活動

若 XAML 使用了本地程序集的活動類型,需通過 XamlXmlReaderSettings 指定 LocalAssembly:

var settings = new XamlXmlReaderSettings 
{ 
    LocalAssembly = typeof(SendForManualApproval).Assembly 
};
var reader = new XamlXmlReader("YourWorkflow.xaml", settings);
Activity workflow = ActivityXamlServices.Load(reader);

這樣 XAML 解析器能正確解析 clr-namespace 映射的本地類型。

應用場景

  • 用戶可視化設計器保存 XAML 到數據庫,運行時動態加載執行。
  • 規則引擎:業務規則以 XAML 存儲,熱更新無需重新部署。
  • 插件式流程:第三方通過 XAML 擴展核心流程。

環境說明

基於 .NET Framework 4.0 RC 1 驗證。正式版 API 兼容。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved