工作 2:使用 App.Config 設定執行階段服務
在工作 1:使用程式碼設定執行階段服務中,您已透過呼叫在 WorkflowRuntime 類別中定義的 AddService 方法,將 DefaultWorkflowSchedulerService 服務新增至 Windows Workflow Foundation 執行階段引擎中。 在本練習中,您會使用不同的方法來設定執行階段服務:使用應用程式組態檔。
使用組態檔是較有彈性的替代方案,因為它可讓您為 Windows Workflow 執行階段引擎建立數個不同的組態檔供您的應用程式使用。 例如,您可以建立一個不使用任何服務的組態,或者建立一個在工作流程執行期間使用持續性和追蹤的執行階段引擎組態。 此外,這些不同的組態可在同一個組態檔中定義,並由您的主應用程式視需要加以存取。
注意
如果您已完成工作 1:使用程式碼設定執行階段服務,您必須復原您在專案上所做的所有變更,因為您要使用組態檔來設定執行階段服務。 本工作隨附的專案檔並不包含上一個工作中新增的程式碼,因此提供了良好的起點。
注意
雖然建議您採取線性方式遵循下列練習,但並不是必要的。 您可以開啟範例專案並繼續下一節中的步驟,開始這個練習。
若要建立應用程式組態檔
在您的專案目錄中,建立名為 App.config 的新檔案。
在 HostingWorkflows 專案檔中,在包含您原始程式檔的 ItemGroup 項目中,新增名為 None 的新項目。
新增名為 Include 且值為 "App.config" 的屬性。
若要定義應用程式組態檔
在 App.config 檔中,以 UTF-8 編碼建立標準的 XML 處理指示。
<?xml version="1.0" encoding="utf-8" ?>
建立名為 configuration 的根項目。
<configuration> </configuration>
在 configuration 項目中,建立名為 configSections 的新項目。
<configSections> </configSections>
在 configSections 項目中,建立名為 section 的新項目。
新增名為 name 且值為 "HostingWorkflowRuntime" 的屬性。
新增另一個名為 type 且值為 "System.Workflow.Runtime.Configuration.WorkflowRuntimeSection, System.Workflow.Runtime, Version=3.0.00000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" 的屬性。
<section name="HostingWorkflowRuntime" type="System.Workflow.Runtime.Configuration.WorkflowRuntimeSection, System.Workflow.Runtime, Version=3.0.00000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
注意
您可以視需要建立數量不限的組態區段。 但就本練習而言,您只需要建立一個區段。
在名為 HostingWorkflowRuntime 的 configuration 節點中建立新項目,其中包含名為 name 且值為 "Hosting" 的屬性。
注意
這個項目名稱與您在步驟 5 建立的區段其 name 屬性內指定的名稱相同。如果您建立多個組態區段,請為每個區段名稱建立一個對應的新項目。
<HostingWorkflowRuntime Name="Hosting"> </HostingWorkflowRuntime>
在 HostingWorkflowRuntime 項目中,建立名為 CommonParameters 的新項目。
<CommonParameters/>
在 HostingWorkflowRuntime 項目中,建立名為 Services 的新項目。
<Services> </Services>
在 Services 項目中,建立名為 add 的新項目。
新增名為 type 且值為 System.Workflow.Runtime.Hosting.DefaultWorkflowSchedulerService, System.Workflow.Runtime, Version=3.0.00000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 的屬性。
新增另一個名為 maxSimultaneousWorkflows 且值為 1 的屬性。
<add type="System.Workflow.Runtime.Hosting.DefaultWorkflowSchedulerService, System.Workflow.Runtime, Version=3.0.00000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" maxSimultaneousWorkflows="1"/>
您的 App.config 檔看起來會像下列組態。
<?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="HostingWorkflowRuntime" type="System.Workflow.Runtime.Configuration.WorkflowRuntimeSection, System.Workflow.Runtime, Version=3.0.00000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> </configSections> <HostingWorkflowRuntime Name="Hosting"> <CommonParameters/> <Services> <add type="System.Workflow.Runtime.Hosting.DefaultWorkflowSchedulerService, System.Workflow.Runtime, Version=3.0.00000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" maxSimultaneousWorkflows="1"/> </Services> </HostingWorkflowRuntime> </configuration>
若要使用應用程式組態檔
在 Program 類別的 Main 方法中,將參數新增至 WorkflowRuntime 建構函式,該建構函式用於產生 WorkflowRuntime 物件。
這個參數是 String 型別,可指定要使用的組態區段名稱。
編譯程式碼
如需編譯您程式碼的詳細資訊,請參閱編譯程式碼。
在工作 3:使用 Windows 工作流程持續性服務中,您會學習到如何使用 SqlWorkflowPersistenceService 服務存放您工作流程的目前狀態。
請參閱
工作
參考
DefaultWorkflowSchedulerService
System.Workflow.Runtime.Configuration
概念
其他資源
Workflow Configuration Formats
Copyright © 2007 by Microsoft Corporation. All rights reserved.