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.
En el ejemplo deRules-ExternalizedPolicy4 se muestra cómo la actividad ExternalizedPolicy4 permite ejecutar objetos existentes de .NET Framework 3.5 Windows Workflow Foundation (WF 3.5) RuleSet en .NET Framework 4.6.1 Windows Workflow Foundation (WF 4.5) directamente mediante el motor de reglas que se envía en WF 3.5. Con esta actividad, puede abrir y ejecutar cualquier WF 3.5 RuleSetexistente. Para obtener más información sobre el motor de reglas de WF 3.5 incluido como parte de Windows Workflow Foundation, lea Introducción al motor de reglas de Windows Workflow Foundation. Para obtener más información sobre la migración de reglas a WF en .NET Framework 4.6.1, consulte la Guía de migración.
Proyectos de este ejemplo
| Nombre de proyecto | Descripción | Archivos principales |
|---|---|---|
| ExternalizedPolicy4 | Contiene la actividad ExternalizedPolicy4 y su diseñador de WF4. |
ExternalizedPolicy4.cs: definición de actividad. ExternalizedPolicy4Designer.xaml: diseñador personalizado para la actividad ExternalizedPolicy4. Usa el editor de reglas (RuleSetDialog) del motor de reglas de WF 3.5. |
| ImperativaCodeClientSample | Aplicación cliente de ejemplo que configura y ejecuta un flujo de trabajo mediante una aplicación ExternalizedPolicy4 mediante código imperativo de C# (no se usa 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 objetos de este tipo. Program.cs: configura y ejecuta un flujo de trabajo que tiene una actividad Policy4 para aplicar reglas definidas en ApplyDiscount.rules a 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 mediante una aplicación ExternalPolicy4 en el Diseñador WF. |
Sequence1.xaml: flujo de trabajo secuencial que usa una actividad Policy4 para realizar evaluaciones de reglas. Program.cs: ejecuta una instancia del flujo de trabajo definido en Sequence1.xaml. |
La actividad ExternalizedPolicy4
La actividad ExternalizedPolicy4 es un elemento NativeActivity que permite ejecutar objetos de WF 3.5 RuleSet dentro de flujos de trabajo de WF 4.5. El ejemplo siguiente es una definición simplificada del modelo de objetos públicos 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 .NET Framework 3.5 RuleSet que se va a evaluar cuando se ejecuta la actividad. |
| RuleSetName | Nombre del objeto RuleSet que se va a usar en el archivo .rules. |
| TargetObject | El objeto contra el cual se evalúan los objetos Rule en RuleSet. |
| ResultObject | El objeto resultante después de aplicar las reglas (por ejemplo, las reglas se aplican al argumento Input y el resultado se almacena en el argumento Result. |
| ValidationError | La lista de errores de validación devueltos por el motor de reglas de WF 3.5 al validar RuleSet contra el objeto de destino antes de la ejecución. |
Diseñador de la actividad ExternalizedPolicy4
El diseñador ExternalizedPolicy4 permite configurar una actividad para usar un RuleSet existente sin escribir código. Solo tiene que establecer la ruta de acceso donde se encuentra el archivo .rules y especificar el RuleSet nombre que desea usar. También permite modificar el 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 conjunto de reglas, se muestra WF 3.5 RuleSetDialog . Este cuadro de diálogo es el editor de reglas wf 3.5 rehospedado y se usa para ver y editar las reglas que ejecuta la actividad ExternalizedPolicy4.
Policy4 y ExternalPolicy4
La Actividad de Directiva permite crear y ejecutar un conjunto de reglas de .NET Framework 3.5 en un flujo de trabajo de WF 4.5. El objeto RuleSet se serializa alineado en la definición XAML de la actividad Policy4. En el ejemplo ExternalizedPolicy4 se muestra cómo usar un externo RuleSet existente (contenido en un archivo .rules).
Usa este ejemplo
No se requiere ninguna configuración especial para ejecutar este ejemplo. Abra la solución en Visual Studio y 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 mediante código imperativo de C#. DesignerClientSample muestra cómo configurar y ejecutar la actividad ExternalizedPolicy4 mediante el diseñador.
Ejecución de la aplicación ImperativeCodeClientSample
Con Visual Studio, abra el archivo de solución Policy4sample.sln .
En el Explorador de soluciones, haga clic con el botón derecho en el proyecto ImperativeCodeClientSample y seleccione Establecer como proyecto de inicio.
Para ejecutar el proyecto, presione Ctrl+F5.
Ejecución de la aplicación DesignerClientSample
Con Visual Studio, abra el archivo de solución Policy4sample.sln .
En el Explorador de soluciones, haga clic con el botón derecho en el proyecto DesignerClientSample y seleccione Establecer como proyecto de inicio.
Pulse Ctrl+Mayús+B para compilar el proyecto.
Presione Ctrl+F5 para ejecutar el proyecto.