Uso de reglas con el marcado de flujo de trabajo
Al utilizar reglas o condiciones de regla en marcado de flujo de trabajo, debe utilizar GetActivityByName para hacer referencia a actividades secundarias en el flujo de trabajo. Por ejemplo, si tiene una actividad personalizada denominada myCustomActivity con una propiedad int denominada Foo, al utilizar Foo en una condición de regla se obtendría lo siguiente:
((myCustomActivityType)(this.GetActivityByName("myCustomActivity"))).Foo > 10
Nota
El método GetActivityByName devuelve un tipo Activity, por lo que debe convertirlo al tipo apropiado para tener acceso a sus propiedades.
En un archivo de separación del código, las actividades se definen como propiedades en el flujo de trabajo para que la regla pueda tener acceso directamente de la manera siguiente:
this.myCustomActivity.Foo > 10
Se debe tener acceso a las actividades secundarias de WhileActivity y ReplicatorActivity de manera diferente porque cada iteración de la actividad WhileActivity y cada actividad secundaria creada por la actividad ReplicatorActivity existen en su propio contexto. Esto significa que la actividad que recibe de System.Workflow.Activities.ReplicatorActivity.DynamicActivities o System.Workflow.Activities.WhileActivity.DynamicActivity es del contexto del flujo de trabajo, que es una instancia diferente de esa actividad secundaria. Para obtener la instancia real que se está ejecutando, debe utilizar el método GetActivityByName, como se muestra en el ejemplo siguiente.
((myCustomActivity)(this.GetActivtyByName("instanceOfCustomActivity", true))).Foo > 5
El segundo parámetro especifica si desea el elemento secundario del contexto del flujo de trabajo o el elemento secundario del contexto de la instancia. Dado que desea la instancia que se está ejecutando dentro de WhileActivity o ReplicatorActivity, debería establecer el parámetro en true.
Consulte también
Conceptos
Uso del marcado de flujo de trabajo
Copyright © 2007 Microsoft Corporation. Reservados todos los derechos.