共用方式為


.NET Framework 4.5 中的外部化策略活動

Rules-ExternalizedPolicy4 範例示範 ExternalizedPolicy4 活動如何使用 WF 3.5 隨附的規則引擎,直接在 .NET Framework 4.6.1 Windows Workflow Foundation (WF 4.5) RuleSet 中執行現有的 .NET Framework 3.5 Windows Workflow Foundation (WF 3.5) 物件。 藉由使用此活動,您可以開啟並執行任何現有的 WF 3.5 RuleSet。 如需 Windows Workflow Foundation 隨附之 WF 3.5 規則引擎的詳細資訊,請參閱 Windows Workflow Foundation 規則引擎簡介。 如需在 .NET Framework 4.6.1 中將規則移轉至 WF 的詳細資訊,請參閱 移轉指引

此範例中的專案

專案名稱 說明 主要檔案
外化政策4 包含 ExternalizedPolicy4 活動及其 WF 4.5 設計工具。 ExternalizedPolicy4.cs:活動定義。

ExternalizedPolicy4Designer.xaml:ExternalizedPolicy4 活動的自定義設計工具。 它會使用 WF 3.5 規則引擎的規則編輯器 (RuleSetDialog)。
命令式代碼客戶範例 使用命令式 C# 程式代碼,使用 ExternalizedPolicy4 應用程式來設定和執行工作流程的範例用戶端應用程式(不使用設計工具)。 ApplyDiscount.rules:具有 WF 規則定義的檔案。

Order.cs:代表客戶訂單的類型。 規則會套用至此類型的物件。

Program.cs:設定和執行具有 Policy4 活動的工作流程,以將 ApplyDiscount.rules 中定義的規則套用至 Order 物件的實例。

App.config:具有規則檔案路徑的組態檔。
設計師客戶範例 在 WF 設計工具中使用 ExternalPolicy4 應用程式設定和執行工作流程的範例客戶端應用程式。 Sequence1.xaml:使用 Policy4 活動的循序工作流程來執行規則評估。

Program.cs:執行 Sequence1.xaml 中定義的工作流程實例。

ExternalizedPolicy4 活動

ExternalizedPolicy4 活動是一種 NativeActivity ,允許在 WF 4.5 工作流程中執行 WF 3.5 RuleSet 物件。 下列範例是活動的公用物件模型的簡化定義。

public class ExternalizedPolicy4Activity<TResult>: CodeActivity
{
    public string RulesFilePath

    public string RuleSetName

    [RequiredArgument]
    public InArgument<T> TargetObject

    [RequiredArgument]
    public OutArgument<T> ResultObject

    public OutArgument<ValidationErrorCollection> ValidationErrors
}
房產 說明
規則集文件路徑 執行活動時要評估之 .NET Framework 3.5 RuleSet 檔案的路徑。
規則集名稱 要在.rules 檔案中使用的RuleSet名稱。
目標物件 用來評估 RuleRuleSet 物件的對象。
ResultObject 套用規則之後產生的物件(例如,規則會套用至 Input 自變數,並將結果儲存在 Result 自變數中。
ValidationError 在執行之前,WF 3.5 規則引擎針對目標對象驗證 RuleSet 時所傳回的驗證錯誤清單。

ExternalizedPolicy4 活動設計工具

ExternalizedPolicy4 設計工具可讓您設定活動以使用現有的 RuleSet,而不需撰寫程式代碼。 只要設定 .rules 檔案所在的路徑,並指定 RuleSet 您想要使用的名稱。 它也可讓您修改 RuleSet。 建置方案之後,可以在 [Microsoft.Samples.Activities.Rules] 區段中的工具箱中找到。 設計者可讓您選擇 .rules 檔案和 RuleSet。 按兩下 [ 編輯規則集 ] 按鈕時,會顯示WF 3.5 RuleSetDialog 。 此對話框是重新裝載的 WF 3.5 規則編輯器,可用來檢視和編輯 ExternalizedPolicy4 活動執行的規則。

Policy4 和 ExternalPolicy4

原則活動可讓您在 WF 4.5 工作流程中建立和執行 .NET Framework 3.5 RuleSet。 會在 RuleSet Policy4 活動 XAML 定義中內嵌串行化 。 ExternalizedPolicy4 範例示範如何使用現有的外部 RuleSet (包含在 .rules 檔案中)。

使用此範例

執行此範例不需要任何特殊的設定。 在 Visual Studio 中開啟方案,然後按 F5 以執行應用程式。

此範例包含兩個用戶端應用程式:命令式 Code 客戶端範例和設計師客戶端範例。 ImperativeCodeClientSample 用戶端示範如何使用 C# 命令式程式代碼來設定和執行 ExternalizedPolicy4 活動。 DesignerClientSample 示範如何使用設計工具設定及執行 ExternalizedPolicy4 活動。

執行 ImperativeCodeClientSample 應用程式

  1. 使用 Visual Studio 開啟 Policy4sample.sln 方案檔。

  2. [方案總管] 中,以滑鼠右鍵按兩下 命令式CodeClientSample 專案,然後選取 [設定為啟始專案]。

  3. 若要執行專案,請按 Ctrl+F5

執行 DesignerClientSample 應用程式

  1. 使用 Visual Studio 開啟 Policy4sample.sln 方案檔。

  2. [方案總管] 中,以滑鼠右鍵按兩下 DesignerClientSample 專案,然後選取 [設定為啟始專案]。

  3. Ctrl+Shift+B 編譯專案。

  4. Ctrl+F5 執行專案。