Aracılığıyla paylaş


WorkflowRuntime.AddService(Object) Yöntem

Tanım

Belirtilen hizmeti iş akışı çalışma zamanı altyapısına ekler.

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

Parametreler

service
Object

Eklenecek hizmeti temsil eden bir nesne.

Özel durumlar

servicenull başvurudur (NothingVisual Basic).

service iş akışı çalışma zamanı altyapısına zaten kayıtlıdır.

-veya- service çekirdek bir hizmettir ve iş akışı çalışma zamanı altyapısı zaten çalışıyor (IsStarted olur true).

Örnekler

Aşağıdaki kod örneği, bir iş akışı konağından işlevselliğin nasıl kullanılacağını WorkflowRuntime gösterir. İş akışı çalışma zamanı altyapısına ve SqlWorkflowPersistenceService eklemek için yönteminin nasıl kullanılacağına AddService ilişkin bir ExternalDataExchangeService örnek sağlar.

Bu kod örneği, İş Akışı İptal Etme örneğinin bir parçasıdır.

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

Açıklamalar

Temel hizmetler ekleyerek iş akışı çalışma zamanı altyapısını yapılandırabilirsiniz. Temel hizmetler, aşağıdaki hizmet temel sınıflarından herhangi birinden türetilen hizmetlerdir: WorkflowSchedulerService sınıfı, WorkflowCommitWorkBatchService sınıfı, WorkflowPersistenceService sınıfı ve TrackingService sınıfı. Temel hizmetler yalnızca iş akışı çalışma zamanı altyapısı çalışmadığında eklenebilir; yani, olduğunda IsStarted false. , WorkflowRuntime diğer iş akışları veya bir konakta çalışan uygulamalar tarafından kullanılabilen diğer hizmetler için bir depolama kapsayıcısı olarak da kullanılabilir. İş akışı çalışma zamanı altyapısı başlatıldıktan sonra sınıfından WorkflowRuntimeService türetilen çekirdek olmayan bir hizmet eklerseniz, AddService bu hizmet tarafından uygulanan yöntemi çağırır Start .

Not

AddService , öğesine aynı Type iki hizmetin eklenmeyebileceği kısıtlamasını WorkflowRuntimeuygular. Ancak, aynı temel sınıftan türetilen birden çok hizmet ekleyebilirsiniz. sınıfı, WorkflowCommitWorkBatchService sınıfı ve WorkflowPersistenceService sınıfındaki aşağıdaki hizmet temel sınıflarından WorkflowRuntimeWorkflowSchedulerService yalnızca bir hizmet türetilebilir. Bu sınıflardan birinden türetilen birden çok hizmet eklerseniz( örneğin iki kalıcılık hizmeti) StartRuntime bir InvalidOperationExceptionoluşturur.

Şunlara uygulanır