WorkflowRuntime.AddService(Object) Metoda

Definice

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).

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.

Platí pro