WorkflowRuntime.AddService(Object) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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
service
jest odwołaniem o wartości null (Nothing
w Visual Basic).
Element WorkflowRuntime jest usuwany.
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.