WorkflowRuntime.GetService WorkflowRuntime.GetService WorkflowRuntime.GetService WorkflowRuntime.GetService Method

Definition

Überlädt

GetService(Type) GetService(Type) GetService(Type) GetService(Type)

Ruft einen Dienst vom angegebenen Type aus der Workflowruntime-Engine ab.Retrieves a service of the specified Type from the workflow run-time engine.

GetService<T>() GetService<T>() GetService<T>() GetService<T>()

Ruft einen Dienst des angegebenen generischen Typs aus der Workflowruntime-Engine ab.Retrieves a service of the specified generic type from the workflow run-time engine.

GetService(Type) GetService(Type) GetService(Type) GetService(Type)

Ruft einen Dienst vom angegebenen Type aus der Workflowruntime-Engine ab.Retrieves a service of the specified Type from the workflow run-time engine.

public:
 virtual System::Object ^ GetService(Type ^ serviceType);
public object GetService (Type serviceType);
abstract member GetService : Type -> obj
override this.GetService : Type -> obj
Public Function GetService (serviceType As Type) As Object

Parameter

serviceType
Type Type Type Type

Der Type des abzurufenden Dienstes.The Type of the service to retrieve.

Gibt zurück

Der Dienst des angegebenen Type.The service of the specified Type.

Implementiert

Ausnahmen

serviceType ist ein NULL-Verweis (Nothing in Visual Basic).serviceType is a null reference (Nothing in Visual Basic).

Es wurde mehr als ein Dienst vom Typ serviceType gefunden.More than one service of type serviceType was found.

Hinweise

GetService löst eine InvalidOperationException aus, wenn für den angegebenen Type mehr als ein Dienst vorhanden ist.GetService throws an InvalidOperationException if more than one service exists for the specified Type. Aus diesem Grund sollten Sie eine der überladenen Methoden von GetAllServices verwenden, wenn es möglich ist, dass in der WorkflowRuntime mehrere Dienste des angegebenen Typs vorhanden sind.Therefore, you should use one of the overloaded methods of GetAllServices if it is possible that multiple services of the specified type are present in the WorkflowRuntime. Die Workflowruntime-Engine kann z.B. mehrere Überwachungsdienste enthalten.For example, the workflow run-time engine may have multiple tracking services. Wenn Sie einen Überwachungsdienst anfordern, indem Sie die TrackingService-Basisklasse angeben, ist es möglich, dass eine Ausnahme ausgelöst wird.If you request a tracking service by specifying the TrackingService base class, it is possible that an exception will be thrown.

GetService<T>() GetService<T>() GetService<T>() GetService<T>()

Ruft einen Dienst des angegebenen generischen Typs aus der Workflowruntime-Engine ab.Retrieves a service of the specified generic type from the workflow run-time engine.

public:
generic <typename T>
 T GetService();
public T GetService<T> ();
member this.GetService : unit -> 'T
Public Function GetService(Of T) () As T

Typparameter

T

Der Diensttyp.The service type.

Gibt zurück

T T T T

Ein einzelner Dienst des angegebenen generischen Typs.A single service of the specified generic type.

Ausnahmen

Es wurde mehr als ein Dienst des generischen Typs gefunden.More than one service of the generic type was found.

Beispiele

Das folgende Beispiel zeigt, wie Sie einen einzelnen Dienst aus einem WorkflowRuntime-Objekt abrufen. In diesem Fall handelt es sich um einen Dienst vom Typ ManualWorkflowSchedulerService.The following example demonstrates how to retrieve a single service from a WorkflowRuntime object; in this case, a service of type ManualWorkflowSchedulerService. Dieses Beispiel wird aus dem Workflow Threading-Beispiel entnommen.This example is from the Workflow Threading Sample.

protected override CompositeActivity OnCreateNewBranch()
{
    return new ParallelIfBranch();
}

private void OnAddBranch(object sender, EventArgs e)
{
    CompositeActivity activity1 = this.OnCreateNewBranch();
    CompositeActivity activity2 = base.Activity as CompositeActivity;

    if ((activity2 != null) && (activity1 != null))
    {
        int num1 = this.ContainedDesigners.Count;
        Activity[] activityArray1 = new Activity[] { activity1 };

        if (CanInsertActivities(new ConnectorHitTestInfo(this, HitTestLocations.Designer, activity2.Activities.Count),
            new List<Activity>(activityArray1).AsReadOnly()))
        {
            CompositeActivityDesigner.InsertActivities(this,
                new ConnectorHitTestInfo(this, HitTestLocations.Designer, activity2.Activities.Count),
                new List<Activity>(activityArray1).AsReadOnly(),
                string.Format("Adding branch {0}", activity1.GetType().Name));

            if ((this.ContainedDesigners.Count > num1) && (this.ContainedDesigners.Count > 0))
            {
                this.ContainedDesigners[this.ContainedDesigners.Count - 1].EnsureVisible();
            }
        }
    }
}
Protected Overrides Function OnCreateNewBranch() As CompositeActivity
    Return New ParallelIfBranch()
End Function

Private Sub OnAddBranch(ByVal sender As Object, ByVal e As EventArgs)
    Dim activity1 As CompositeActivity = Me.OnCreateNewBranch()
    Dim activity2 As CompositeActivity = CType(MyBase.Activity, CompositeActivity)

    If (activity2 IsNot Nothing) And (activity1 IsNot Nothing) Then

        Dim num1 As Integer = Me.ContainedDesigners.Count
        Dim activityArray1() As Activity = {activity1}

        If (CanInsertActivities(New ConnectorHitTestInfo(Me, HitTestLocations.Designer, activity2.Activities.Count), _
            New List(Of Activity)(activityArray1).AsReadOnly())) Then

            CompositeActivityDesigner.InsertActivities(Me, _
                New ConnectorHitTestInfo(Me, HitTestLocations.Designer, activity2.Activities.Count), _
                New List(Of Activity)(activityArray1).AsReadOnly(), _
                String.Format("Adding branch 0}", activity1.GetType().Name))

            If (Me.ContainedDesigners.Count > num1) And (Me.ContainedDesigners.Count > 0) Then
                Me.ContainedDesigners(Me.ContainedDesigners.Count - 1).EnsureVisible()
            End If
        End If
    End If
End Sub

Hinweise

GetService löst eine InvalidOperationException aus, wenn für den angegebenen generischen Typ mehr als ein Dienst vorhanden ist.GetService throws an InvalidOperationException if more than one service exists for the specified generic type. Aus diesem Grund sollten Sie eine der überladenen Methoden von GetAllServices verwenden, wenn es möglich ist, dass in der WorkflowRuntime mehrere Dienste des generischen Typs vorhanden sind.Therefore, you should use one of the overloaded methods of GetAllServices if it is possible that multiple services of the generic type are present in the WorkflowRuntime. Die Workflowruntime-Engine kann z.B. mehrere Überwachungsdienste enthalten.For example, the workflow run-time engine may have multiple tracking services. Wenn Sie einen Überwachungsdienst anfordern, indem Sie die TrackingService-Basisklasse angeben, ist es möglich, dass eine Ausnahme ausgelöst wird.If you request a tracking service by specifying the TrackingService base class, it is possible that an exception will be thrown.

Gilt für: