WorkflowRuntime.AddService(Object) Метод

Определение

Добавляет указанную службу к механизму среды выполнения рабочих процессов.

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

Параметры

service
Object

Объект, представляющий добавляемую службу.

Исключения

Параметр service является неопределенной ссылкой (Nothing в Visual Basic).

Объект WorkflowRuntime удален.

Служба service уже зарегистрирована механизмом среды выполнения рабочих процессов.

-или- service является базовой службой, и механизм времени выполнения рабочих процессов уже выполняется (свойство IsStarted имеет значение true).

Примеры

В следующем примере кода показано использование функций класса WorkflowRuntime с узла рабочего процесса. Он содержит пример использования метода AddService для добавления служб ExternalDataExchangeService и SqlWorkflowPersistenceService к механизму среды выполнения рабочих процессов.

Этот пример кода является частью примера отмены рабочего процесса .

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

Комментарии

Механизм среды выполнения рабочих процессов можно настраивать, добавляя базовые службы. Базовые службы — это службы, производные от любого из следующих базовых классов служб: WorkflowSchedulerService, WorkflowCommitWorkBatchService, WorkflowPersistenceService и TrackingService. Основные службы можно добавлять только в том случае, если подсистема времени выполнения рабочего процесса не запущена; то есть, когда IsStarted есть false. Объект WorkflowRuntime также можно использовать в качестве контейнера для хранения других служб, которые могут использоваться другими рабочими процессами или приложениями, выполняемыми на узле. При добавлении небазовой службы, производной от класса WorkflowRuntimeService, после запуска механизма среды выполнения рабочих процессов, метод AddService вызывает метод Start, реализованный данной службой.

Примечание

Метод AddService накладывает ограничение, запрещающее добавлять несколько служб одного типа Type к объекту WorkflowRuntime. Однако можно добавлять несколько служб, производных от одного базового класса. В объекте WorkflowRuntime может быть только по одной службе, производной от каждого из следующих базовых классов служб: WorkflowSchedulerService, WorkflowCommitWorkBatchService и WorkflowPersistenceService. При добавлении нескольких служб, производных от одного из этих классов, например двух служб сохраняемости, метод StartRuntime вызовет исключение InvalidOperationException.

Применяется к