WorkflowRuntime.GetService Método

Definición

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.

C#
public object GetService(Type serviceType);

Parámetros

serviceType
Type

Type del servicio que se va a recuperar.

Devoluciones

El servicio de a clase Type especificada.

Implementaciones

Excepciones

serviceType es una referencia nula (Nothing en Visual Basic).

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

.NET Framework 4.8.1 y otras versiones
Producto Versiones
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1

GetService<T>()

Recupera un servicio del tipo genérico especificado desde el motor en tiempo de ejecución de flujo de trabajo.

C#
public T GetService<T>();

Parámetros de tipo

T

El tipo de servicio.

Devoluciones

T

Un servicio del tipo genérico especificado.

Excepciones

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.

C#
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();
            }
        }
    }
}

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.

Se aplica a

.NET Framework 4.8.1 y otras versiones
Producto Versiones
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1