WorkflowRuntime.AddService(Object) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Přidá zadanou službu do modulu runtime pracovního postupu.
public:
void AddService(System::Object ^ service);
public void AddService (object service);
member this.AddService : obj -> unit
Public Sub AddService (service As Object)
Parametry
- service
- Object
Objekt, který představuje službu, která se má přidat.
Výjimky
service
je odkaz s hodnotou null (Nothing
v jazyce Visual Basic).
Je WorkflowRuntime zlikvidován.
service
je již zaregistrovaný v modulu runtime pracovního postupu.
-nebo-
service
je základní služba a modul runtime pracovního postupu je již spuštěný (IsStarted je true
).
Příklady
Následující příklad kódu ukazuje, jak používat WorkflowRuntime funkce z hostitele pracovního postupu. Poskytuje příklad použití AddService metody k přidání ExternalDataExchangeService a SqlWorkflowPersistenceService do modulu runtime pracovního postupu.
Tento příklad kódu je součástí ukázky Zrušení pracovního postupu .
static void Main()
{
string connectionString = "Initial Catalog=SqlPersistenceService;Data Source=localhost;Integrated Security=SSPI;";
using (WorkflowRuntime workflowRuntime = new WorkflowRuntime())
{
ExternalDataExchangeService dataService = new ExternalDataExchangeService();
workflowRuntime.AddService(dataService);
dataService.AddService(expenseService);
workflowRuntime.AddService(new SqlWorkflowPersistenceService(connectionString));
workflowRuntime.StartRuntime();
workflowRuntime.WorkflowCompleted += OnWorkflowCompleted;
workflowRuntime.WorkflowTerminated += OnWorkflowTerminated;
workflowRuntime.WorkflowIdled += OnWorkflowIdled;
workflowRuntime.WorkflowAborted += OnWorkflowAborted;
Type type = typeof(SampleWorkflow1);
WorkflowInstance workflowInstance = workflowRuntime.CreateWorkflow(type);
workflowInstance.Start();
waitHandle.WaitOne();
workflowRuntime.StopRuntime();
}
}
Shared Sub Main()
Dim connectionString As String = "Initial Catalog=SqlPersistenceService;Data Source=localhost;Integrated Security=SSPI;"
Using workflowRuntime As New WorkflowRuntime()
Dim dataService As New ExternalDataExchangeService()
workflowRuntime.AddService(dataService)
dataService.AddService(expenseService)
workflowRuntime.AddService(New SqlWorkflowPersistenceService(connectionString))
AddHandler workflowRuntime.WorkflowCompleted, AddressOf OnWorkflowCompleted
AddHandler workflowRuntime.WorkflowTerminated, AddressOf OnWorkflowTerminated
AddHandler workflowRuntime.WorkflowIdled, AddressOf OnWorkflowIdled
AddHandler workflowRuntime.WorkflowAborted, AddressOf OnWorkflowAborted
Dim workflowInstance As WorkflowInstance
workflowInstance = workflowRuntime.CreateWorkflow(GetType(SampleWorkflow))
workflowInstance.Start()
waitHandle.WaitOne()
workflowRuntime.StopRuntime()
End Using
End Sub
Poznámky
Modul runtime pracovního postupu můžete nakonfigurovat přidáním základních služeb. Základní služby jsou ty, které jsou odvozené z některé z následujících základních tříd služby: WorkflowSchedulerService třída, WorkflowCommitWorkBatchService třída, WorkflowPersistenceService třída a TrackingService třída. Základní služby lze přidat pouze v době, kdy není spuštěn modul runtime pracovního postupu. to znamená, když IsStarted je false
. Lze WorkflowRuntime také použít jako kontejner úložiště pro jiné služby, které můžou používat jiné pracovní postupy nebo aplikace spuštěné na hostiteli. Pokud přidáte službu, která není jádrem, která je odvozena z WorkflowRuntimeService třídy po spuštění modulu pracovního postupu runtime, AddService zavolá metodu Start implementovanou danou službou.
Poznámka
AddServicevynucuje omezení, že do WorkflowRuntimesouboru nelze přidat dvě služby stejného Type typu. Můžete však přidat více služeb, které jsou odvozeny ze stejné základní třídy. Může existovat pouze jedna služba odvozená z každé z následujících základních tříd služby v WorkflowRuntime: WorkflowSchedulerService třída, WorkflowCommitWorkBatchService třída a WorkflowPersistenceService třída. Pokud přidáte více služeb odvozených z jedné z těchto tříd, například dvě služby trvalosti, StartRuntime vyvolá příkaz InvalidOperationException.