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 映射的本地類型。
基於 .NET Framework 4.0 RC 1 驗證。正式版 API 兼容。