WorkflowRuntime.AddService(Object) WorkflowRuntime.AddService(Object) WorkflowRuntime.AddService(Object) WorkflowRuntime.AddService(Object) Method

Definition

Fügt den angegebenen Dienst der Workflowruntime-Engine hinzu.Adds the specified service to the workflow run-time engine.

public:
 void AddService(System::Object ^ service);
public void AddService (object service);
member this.AddService : obj -> unit
Public Sub AddService (service As Object)

Parameter

service
Object Object Object Object

Ein Objekt, das den hinzuzufügenden Dienst darstellt.An object that represents the service to add.

Ausnahmen

service ist ein NULL-Verweis (Nothing in Visual Basic).service is a null reference (Nothing in Visual Basic).

service ist bereits bei der Workflowruntime-Engine registriert.service is already registered with the workflow run-time engine.

- oder --or- service ist ein Basisdienst, und die Workflowruntime-Engine wird bereits ausgeführt (IsStarted ist true).service is a core service and the workflow run-time engine is already running (IsStarted is true).

Beispiele

Das folgende Codebeispiel zeigt, wie Sie die WorkflowRuntime-Funktionalität eines Workflowhosts verwenden können.The following code example demonstrates how to use WorkflowRuntime functionality from a workflow host. Es wird gezeigt, wie Sie die AddService-Methode zum Hinzufügen von ExternalDataExchangeService und SqlWorkflowPersistenceService zur Workflowruntime-Engine verwenden.It provides example of how to use the AddService method to add an ExternalDataExchangeService and SqlWorkflowPersistenceService to the workflow run-time engine.

Dieses Codebeispiel ist Teil des Beispiels für das Abbrechen eines Workflows .This code example is part of the Cancelling a Workflow sample.

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

Hinweise

Sie können die Workflowruntime-Engine konfigurieren, indem Sie Basisdienste hinzufügen.You can configure the workflow run-time engine by adding core services. Basisdienste sind Dienste, die von einer der folgenden Dienstbasisklassen abgeleitet sind: WorkflowSchedulerService, WorkflowCommitWorkBatchService, WorkflowPersistenceService und TrackingService.Core services are those that derive from any of the following service base classes: the WorkflowSchedulerService class, the WorkflowCommitWorkBatchService class, the WorkflowPersistenceService class, and the TrackingService class. Kerndienste können nur hinzugefügt werden, wenn das Workflow Lauf Zeit Modul nicht ausgeführt wird. Das heißt, wenn IsStarted ist false.Core services can only be added when the workflow run-time engine is not running; that is, when IsStarted is false. Sie können die WorkflowRuntime auch als Speichercontainer für andere Dienste verwenden, die von anderen Workflows oder anderen Anwendungen verwendet werden können, die auf einem Host ausgeführt werden.The WorkflowRuntime can also be used as a storage container for other services that can be used by other workflows or by applications running on a host. Wenn Sie einen von der WorkflowRuntimeService -Klasse abgeleiteten Nicht-Basisdienst hinzufügen, nachdem die Workflowruntime-Engine gestartet wurde, ruft AddService die Start-Methode auf, die von diesem Dienst implementiert wird.If you add a non-core service that derives from the WorkflowRuntimeService class after the workflow run-time engine has been started, AddService calls the Start method implemented by that service.

Hinweis

AddService erzwingt die Einschränkung, dass keine zwei Dienste vom gleichen Type zur WorkflowRuntime hinzugefügt werden können.AddService enforces the restriction that no two services of the same Type can be added to the WorkflowRuntime. Sie können jedoch mehrere Dienste hinzufügen, die von der gleichen Basisklasse abgeleitet werden.However, you can add multiple services that derive from the same base class. Es kann nur jeweils ein Dienst von den einzelnen Dienstbasisklassen unter WorkflowRuntime abgeleitet werden: WorkflowSchedulerService, WorkflowCommitWorkBatchService und WorkflowPersistenceService.There can be only one service derived from each of the following service base classes in the WorkflowRuntime: the WorkflowSchedulerService class, the WorkflowCommitWorkBatchService class, and the WorkflowPersistenceService class. Wenn Sie mehrere Dienste hinzufügen, die von einer dieser Klassen abgeleitet werden, z. B. zwei Persistenzdienste, löst StartRuntime eine InvalidOperationException aus.If you add multiple services derived from one of these classes, for example two persistence services, StartRuntime throws an InvalidOperationException.

Gilt für: