WorkflowRuntime.GetService Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Sobrecargas
GetService(Type) |
Recupera un servicio del Type especificado del motor en tiempo de ejecución de flujo de trabajo. |
GetService<T>() |
Recupera un servicio del tipo genérico especificado desde el motor en tiempo de ejecución de flujo de trabajo. |
GetService(Type)
Recupera un servicio del Type especificado del motor en tiempo de ejecución de flujo de trabajo.
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
Parámetros
Devoluciones
El servicio de a clase Type especificada.
Implementaciones
Excepciones
serviceType
es una referencia nula (Nothing
en Visual Basic).
WorkflowRuntime ya se ha eliminado.
Se buscó más de un servicio de tipo serviceType
.
Comentarios
GetService inicia InvalidOperationException si existe más de un servicio para el Type especificado. Por consiguiente, debería utilizar uno de los métodos sobrecargados de GetAllServices si es posible que varios servicios del tipo especificado estén presentes en WorkflowRuntime. Por ejemplo, el motor en ejecución del flujo de trabajo puede tener varios servicios de seguimiento. Si solicita un servicio de seguimiento especificando la clase base TrackingService, es posible que se produzca una excepción.
Se aplica a
GetService<T>()
Recupera un servicio del tipo genérico especificado desde el motor en tiempo de ejecución de flujo de trabajo.
public:
generic <typename T>
T GetService();
public T GetService<T> ();
member this.GetService : unit -> 'T
Public Function GetService(Of T) () As T
Parámetros de tipo
- T
El tipo de servicio.
Devoluciones
Un servicio del tipo genérico especificado.
Excepciones
WorkflowRuntime ya se ha eliminado.
Se encontró más de un servicio del tipo genérico.
Ejemplos
El ejemplo siguiente muestra cómo recuperar un servicio único de un objeto WorkflowRuntime; en este caso, un servicio de tipo ManualWorkflowSchedulerService. Este ejemplo procede del ejemplo de subprocesos de flujo de trabajo.
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
Comentarios
GetService produce si InvalidOperationException existe más de un servicio para el tipo genérico especificado. Por consiguiente, debería utilizar uno de los métodos sobrecargados de GetAllServices si es posible que varios servicios del tipo genérico estén presentes en WorkflowRuntime. Por ejemplo, el motor en ejecución del flujo de trabajo puede tener varios servicios de seguimiento. Si solicita un servicio de seguimiento especificando la clase base TrackingService, es posible que se produzca una excepción.