Udostępnij za pośrednictwem


WorkflowRuntime.AddService(Object) Metoda

Definicja

Dodaje określoną usługę do aparatu czasu wykonywania przepływu pracy.

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

Obiekt reprezentujący usługę do dodania.

Wyjątki

servicejest odwołaniem o wartości null (Nothingw Visual Basic).

service jest już zarejestrowany w aucie czasu wykonywania przepływu pracy.

-lub- service jest usługą podstawową, a aparat czasu wykonywania przepływu pracy jest już uruchomiony (IsStarted to true).

Przykłady

W poniższym przykładzie kodu pokazano, jak używać WorkflowRuntime funkcji z hosta przepływu pracy. Zawiera przykład użycia AddService metody w celu dodania ExternalDataExchangeService elementu i SqlWorkflowPersistenceService do aparatu czasu wykonywania przepływu pracy.

Ten przykład kodu jest częścią przykładu Anulowanie przepływu pracy .

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

Uwagi

Aparat czasu wykonywania przepływu pracy można skonfigurować, dodając podstawowe usługi. Podstawowe usługi to te, które pochodzą z dowolnej z następujących klas bazowych usług: WorkflowSchedulerService klasy, klasy, WorkflowCommitWorkBatchService klasy, WorkflowPersistenceService klasy i TrackingService klasy. Usługi podstawowe można dodawać tylko wtedy, gdy aparat czasu wykonywania przepływu pracy nie jest uruchomiony; oznacza to, gdy IsStarted jest to false. Może WorkflowRuntime być również używany jako kontener magazynu dla innych usług, które mogą być używane przez inne przepływy pracy lub aplikacje uruchomione na hoście. Jeśli dodasz usługę inną niż podstawowa, która pochodzi z WorkflowRuntimeService klasy po uruchomieniu aparatu czasu wykonywania przepływu pracy, AddService wywołuje Start metodę zaimplementowaną przez tę usługę.

Uwaga

AddServicewymusza ograniczenie, że do obiektu WorkflowRuntimemożna dodać żadne dwie usługi tego samego Type elementu . Można jednak dodać wiele usług, które pochodzą z tej samej klasy bazowej. W klasie : WorkflowSchedulerService klasa, klasa, WorkflowCommitWorkBatchService klasa i WorkflowPersistenceService klasa mogą pochodzić tylko z jednej z następujących klas WorkflowRuntimebazowych usług. Jeśli dodasz wiele usług pochodzących z jednej z tych klas, na przykład dwie usługi trwałości, StartRuntime zgłasza błąd InvalidOperationException.

Dotyczy