WorkflowRuntime.GetService Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Surcharges
GetService(Type) |
Récupère un service de l'objet Type spécifié à partir du moteur d'exécution de workflow. |
GetService<T>() |
Récupère un service du type générique spécifié du moteur d'exécution de workflow. |
GetService(Type)
Récupère un service de l'objet Type spécifié à partir du moteur d'exécution de workflow.
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
Paramètres
Retours
Service de l'objet Type spécifié.
Implémente
Exceptions
serviceType
est une référence Null (Nothing
en Visual Basic).
L'objet WorkflowRuntime est déjà supprimé.
Plusieurs services de type serviceType
ont été trouvés.
Remarques
GetService lève une InvalidOperationException si plusieurs services existent pour le Type spécifié. Par conséquent, vous devez utiliser l'une des méthodes surchargées de GetAllServices s'il est possible que plusieurs services du type spécifié soient présents dans l'objet WorkflowRuntime. Par exemple, le moteur d'exécution de workflow peut disposer de plusieurs services de suivi. Si vous demandez un service de suivi en spécifiant la classe de base TrackingService, il est possible qu'une exception soit levée.
S’applique à
GetService<T>()
Récupère un service du type générique spécifié du moteur d'exécution de workflow.
public:
generic <typename T>
T GetService();
public T GetService<T> ();
member this.GetService : unit -> 'T
Public Function GetService(Of T) () As T
Paramètres de type
- T
Type de service.
Retours
Service unique du type générique spécifié.
Exceptions
WorkflowRuntime a déjà été supprimé.
Plusieurs services de type générique ont été trouvés.
Exemples
L'exemple suivant montre comment récupérer un service unique à partir d'un objet WorkflowRuntime, dans le cas présent, un service de type ManualWorkflowSchedulerService. Cet exemple provient de l’exemple threading de flux de travail.
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
Remarques
GetService lève une InvalidOperationException si plusieurs services existent pour le type générique spécifié. Par conséquent, vous devez utiliser l'une des méthodes surchargées de GetAllServices s'il est possible que plusieurs services du type générique soient présents dans l'objet WorkflowRuntime. Par exemple, le moteur d'exécution de workflow peut disposer de plusieurs services de suivi. Si vous demandez un service de suivi en spécifiant la classe de base TrackingService, il est possible qu'une exception soit levée.