WorkflowRuntime.AddService(Object) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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
service
null başvurudur (Nothing
Visual 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.