Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Este tema es aplicable a Windows Workflow Foundation 4.
En este ejemplo se muestra cómo la actividad ExternalizedPolicy4 permite ejecutar objetos RuleSetde Windows Workflow Foundation en .NET Framework versión 3.5(WF 3.5) directamente en Windows Workflow Foundation en .NET Framework versión 4(WF 4) utilizando el motor de reglas que se distribuye con WF 3.5. Con esta actividad, se puede abrir y ejecutar cualquier RuleSetde WF 3.5 existente. Para obtener más información sobre el motor de reglas de WF 3.5 que se incluye como parte de Windows Workflow Foundation, lea Introducción al motor de reglas de Windows Workflow Foundation. Para obtener más información sobre sobre cómo migrar reglas a WF en .NET Framework 4, lea la guía de migración en Guía de migración.
Proyectos en este ejemplo
Nombre del proyecto |
Descripción |
Archivos principales |
ExternalizedPolicy4 |
Contiene la actividad ExternalizedPolicy4 y su diseñador de WF4. |
ExternalizedPolicy4.cs: definición de la actividad. ExternalizedPolicy4Designer.xaml: el diseñador personalizado de la actividad ExternalizedPolicy4. Utiliza el editor de reglas (RuleSetDialog) del motor de reglas de WF 3.5. |
ImperativeCodeClientSample |
Aplicación cliente de ejemplo que configura y ejecuta un flujo de trabajo mediante una aplicación ExternalizedPolicy4 que utiliza el código C# imperativo (no se utiliza ningún diseñador). |
ApplyDiscount.rules: archivo con definiciones de reglas de WF. Order.cs: tipo que representa un pedido de cliente. Las reglas se aplican a los objetos de este tipo. Program.cs: configura y ejecuta un flujo de trabajo que tiene una actividad Policy4 para aplicar las reglas definidas en ApplyDiscount.rules a las instancias de objetos Order. App.config: el archivo de configuración con la ruta de acceso del archivo de reglas. |
DesignerClientSample |
Aplicación cliente de ejemplo que configura y ejecuta un flujo de trabajo utilizando una aplicación ExternalPolicy4 en el diseñador de WF. |
Sequence1.xaml: flujo de trabajo secuencial que utiliza una actividad Policy4 para realizar evaluaciones de reglas. Program.cs: ejecuta una instancia de flujo de trabajo definida en Sequence1.xaml. |
La actividad ExternalizedPolicy4
La actividad ExternalizedPolicy4 es un objeto NativeActivity que permite ejecutar objetos RuleSet de WF 3.5 dentro de flujos de trabajo de WF 4.0. El siguiente ejemplo es una definición simplificada del modelo de objetos público de la actividad.
public class ExternalizedPolicy4Activity<TResult>: CodeActivity
{
public string RulesFilePath
public string RuleSetName
[RequiredArgument]
public InArgument<T> TargetObject
[RequiredArgument]
public OutArgument<T> ResultObject
public OutArgument<ValidationErrorCollection> ValidationErrors
}
Propiedad |
Descripción |
RuleSetFilePath |
Ruta de acceso al archivo RuleSet de .NET Framework 3.5 que se evaluará cuando se ejecute la actividad. |
RuleSetName |
Nombre del RuleSet que se va a utilizar dentro del archivo .rules. |
TargetObject |
El objeto con el que se evaluarán los objetos Rule del RuleSet. |
ResultObject |
El objeto resultante una vez aplicadas las reglas (por ejemplo, las reglas se aplican con el argumento Input y el resultado se almacena en el argumento Result. |
ValidationError |
La lista de errores de validación devuelta por el motor de reglas de WF 3.5 al validar la clase RuleSet con el objeto de destino antes de realizar la ejecución. |
Diseñador de la actividad ExternalizedPolicy4
El diseñador de ExternalizedPolicy4 le permite configurar una actividad para utilizar un conjunto de reglas existente sin escribir código. Simplemente establezca la ruta de acceso donde se encuentra localizado el archivo .rules y especifique el nombre RuleSet que desea utilizar. También le permite modificar el objeto RuleSet. Después de compilar la solución, se puede encontrar en el cuadro de herramientas de la sección Microsoft.Samples.Activities.Rules. El diseñador le permite seleccionar un archivo .rules y un objeto RuleSet. Cuando se hace clic en el botón Editar RuleSet, se muestra el RuleSetDialog del WF 3.5. Este diálogo representa el editor de reglas de WF 3.5 re-hospedado y se utiliza para ver y modificar las reglas que ejecuta la actividad ExternalizedPolicy4.
Policy4 y ExternalPolicy4
La actividad Actividad Policy en .NET Framework 4 permite crear y ejecutar un conjunto de reglas de .NET Framework 3.5 en un flujo de trabajo de WF 4. El objeto RuleSet se serializa alineado en la definición XAML de la actividad Policy4. El ejemplo de ExternalizedPolicy4 muestra cómo utilizar un objeto RuleSet externo existente (incluido en un archivo .rules).
Utilizar este ejemplo
No se exige ninguna configuración especial para ejecutar este ejemplo. Abra la solución en Visual Studio 2010y presione F5 para ejecutar la aplicación.
Este ejemplo contiene dos aplicaciones cliente: ImperativeCodeClientSample y DesignerClientSample. El cliente ImperativeCodeClientSample muestra cómo configurar y ejecutar la actividad ExternalizedPolicy4 utilizando el código imperativo C#. DesignerClientSample muestra cómo configurar y ejecutar la actividad ExternalizedPolicy4 mediante el diseñador.
Para ejecutar la aplicación ImperativeCodeClientSample
Abra el archivo de solución Policy4sample.sln con Visual Studio 2010.
En el Explorador de soluciones, haga clic con el botón secundario en el proyecto ImperativeCodeClientSample y seleccione Establecer como proyecto de inicio.
Presione CTRL+F5 para ejecutar el proyecto.
Para ejecutar la aplicación DesignerClientSample
Abra el archivo de solución Policy4sample.sln con Visual Studio 2010.
En el Explorador de soluciones, haga clic con el botón secundario en el proyecto DesignerClientSample y seleccione Establecer como proyecto de inicio.
Presione F6 para compilar el proyecto.
Presione CTRL+F5 para ejecutar el proyecto.
![]() |
---|
Puede que los ejemplos ya estén instalados en su equipo. Compruebe el siguiente directorio (valor predeterminado) antes de continuar.
<InstallDrive>: \WF_WCF_Samples
Si no existe este directorio, vaya a la página de ejemplos de Windows Communication Foundation (WCF) y Windows Workflow Foundation (WF) Samples para .NET Framework 4 para descargar todos los ejemplos de WF y Windows Communication Foundation (WCF). Este ejemplo se encuentra en el siguiente directorio.
<InstallDrive>:\WF_WCF_Samples\WF\Scenario\ActivityLibrary\ExternalizedPolicy4
|