Compartir a través de


Actividad NoPersistScope

Este tema es aplicable a Windows Workflow Foundation 4.

En este ejemplo se muestra cómo manipular un estado no serializable y descartable dentro de un flujo de trabajo. Es importante que los flujos de trabajo no intenten conservar el estado no serializable y también que los objetos descartables se limpien después de utilizarse en el flujo de trabajo.

Demostraciones

Actividad NoPersistScope personalizada y diseñador.

Usar la actividad NoPersistZone

Cuando el flujo de trabajo del ejemplo se ejecuta, una actividad personalizada denominada CreateTextWriter crea un objeto de tipo TextWriter y lo guarda en una variable de flujo de trabajo. TextWriter es un objeto IDisposable. Este TextWriter, que se configura para escribir en un archivo denominado 'out.txt' en el directorio en el que se ejecuta el ejemplo, es utilizado por una actividad WriteLine porque devuelve cualquier texto que se escriba en la consola.

La lógica de devolución se ejecuta dentro de una actividad NoPersistScope (cuyo código forma también parte de este ejemplo), que evita que se conserve el flujo de trabajo. Si escribe descarga en la consola, el host intenta conservar la instancia de flujo de trabajo, pero esta operación supera el tiempo de espera porque el flujo de trabajo permanece dentro de un NoPersistScope. El flujo de trabajo también utiliza una actividad personalizada denominada Dispose para eliminar el objeto TextWriter cuando el flujo de trabajo ha terminado de utilizarlo. La actividad Dispose se coloca dentro del bloque Finally de la actividad TryCatch en la que se declara la variable TextWriter, para asegurarse de que ejecuta aunque se produzca una excepción durante la ejecución del bloque Try.

Puede escribir salir completar la instancia de flujo de trabajo y salir del programa.

Para ejecutar el ejemplo

  1. Abra la solución NoPersistZone.sln en Visual Studio 2010.

  2. Para compilar la solución, presione F6 o seleccione Generar solución en el menú Generar.

  3. Cuando la compilación se complete correctamente, presione F5 o seleccione Iniciar depuración en el menú Depurar; también, puede presionar CTRL+F5 o seleccionar Iniciar sin depurar en el menú Depurar para realizar la ejecución sin depuración.

Para realizar la limpieza (opcional)

  1. Para quitar el almacén de instancias de SQL, ejecute Cleanup.cmd.
Dd807512.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 WF y Windows Communication Foundation (WCF). Este ejemplo se encuentra en el siguiente directorio.

<InstallDrive>: \WF_WCF_Samples\WF\Scenario\ActivityLibrary\NoPersistScope