Tipos de restricción

Este tema es aplicable a Windows Workflow Foundation 4.

Este ejemplo muestra dos formas diferentes de aplicar restricciones a un flujo de trabajo: desde dentro de la actividad (compilación) y desde fuera de ella (directiva). En este escenario, un autor de actividad (de una compañía de software de terceros) desea validar la relación entre dos argumentos. En este caso, el coste debe ser menor o igual que al precio. Esta es una restricción de compilación de validación general.

A continuación, un propietario de tienda desea agregar alguna validación a esta actividad genérica. En su caso, desea que el precio de la mayoría de sus productos sea $ 9,99 o menos. Por lo tanto, utiliza una restricción de directiva que está en la parte superior de la actividad CreateProduct.

En el ejemplo:

El autor de actividad (compilación) debe:

  • Crear una restricción (PriceGreaterThanCost). Aquí es donde reside toda la lógica de validación.

  • Invalidar OnGetConstraints y agregar la restricción (PriceGreaterThanCost) a las restricciones IList.

El autor del flujo de trabajo (directiva) debe:

  • Crear un flujo de trabajo con una instancia de la actividad para validar (CreateProduct).

  • Crear una restricción (MaxPrice).

  • Crear una instancia de ValidatorSettings (validatorSettings) y agregar la limitación (MaxPrice) a la colección AdditionalConstraints. Aquí el autor del flujo de trabajo puede agregar restricciones de directiva a cualquier actividad, como una secuencia o paralela.

  • Llamar a Validate, que devuelve una colección ValidationResults de objetos ConstraintViolation.

  • (Opcional) Imprimir los objetos ConstraintViolation.

Para configurar, compilar y ejecutar el ejemplo

  1. Abra la solución de ejemplo ConstraintTypes.sln en Visual Studio 2010.

  2. Compile y ejecute la solución.

Dd759025.Important(es-es,VS.100).gif Nota:
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 Windows Communication Foundation (WCF) y WF. Este ejemplo se encuentra en el siguiente directorio.

<InstallDrive>:\WF_WCF_Samples\WF\Scenario\Validation\ConstraintLibrary