簡體   English   中英

覆蓋工作流中的活動?

[英]Override activity in workflow?

我有一個復雜的工作流程來向客戶發送營銷電子郵件。 有大約 20 項活動決定誰獲得哪種 email。

我 95% 的活動是在二進制活動庫中定義的。 我在視覺工作室組裝了我的主要活動。

對於某些類型的客戶,我希望(例如)步驟 25a 中的活動的行為與我在構建它時定義的行為不同。 我們可以從托管在數據庫中的 xaml 加載活動。

一種選擇是為這些客戶克隆整個工作流程,但這是很多代碼重復。

是否可以覆蓋運行時用於定位和編組活動的任何內容,以便如果我的客戶是左撇子,則替換工作流中的一個活動,而不是我在 IDE 中定義的活動?

我正在考慮如何覆蓋 mvc 中的 ViewEngine 以動態加載 ipad 視圖或其他任何內容。 加載活動是否有類似的東西?

如果將活動編譯到程序集中,則無法替換工作流本身中的活動。 不過,您可以使用幾個選項:

  • 使用 ActivityXamlServices.Load() 使用動態加載的活動,因為 XAML 只是 XML 在加載之前更改 XAML。
  • 在您的工作流中使用包裝器活動,該活動僅在運行時加載實際活動並使用 WorkflowInvoker 執行它。
  • 通過使用活動和擴展將意圖與實現分開。 該活動僅獲取所有輸入和擴展,並在其上調用 function。 在運行時,您可以根據需要改變工作流擴展的實際實現。

好消息...我已經在 Microsoft.Activities 中構建了您所需要的內容。 有關詳細信息,請參閱WF4 How To Invoke a Child Workflow as XAML ,就在昨天我添加了對跟蹤子工作流的支持,請參閱使用 InvokeWorkflow 跟蹤子工作流

暫無
暫無

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

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