Ejemplo de servicio local correlacionado

Download sample

En este ejemplo se muestra el uso de atributos de correlación con servicios locales para provocar eventos correlacionados en una instancia de flujo de trabajo. Los atributos de correlación se deben utilizar en una interfaz de servicio local cuando una instancia de flujo de trabajo podría estar realizando escuchas de otras instancias del mismo evento en una interfaz de servicio local.

En este ejemplo, un flujo de trabajo crea dos tareas y, a continuación, espera a que se le notifique (por parte del mismo evento de servicio local) cuando las tareas están finalizadas. En este caso, cuando el código externo provoca el evento en el flujo de trabajo, la infraestructura del servicio local debe depender de los datos del evento que se provoca (el valor de correlación) para enrutar el evento a la actividad HandleExternalEventActivity adecuada de la instancia de flujo de trabajo.

El atributo ExternalDataExchangeAttribute es un atributo necesario que indica que el servicio local participa en el intercambio de datos con un flujo de trabajo.

El atributo CorrelationParameterAttribute indica que, de forma predeterminada, el valor de correlación se encuentra en el parámetro con el nombre especificado en los métodos y eventos que se definen en la interfaz. El siguiente código del ejemplo demuestra el uso de un atributo CorrelationParameterAttribute.

[CorrelationParameter("taskId")]
public interface ITaskService

El atributo CorrelationInitializerAttribute indica que el método con atributos es el que inicializa el valor de correlación y, por consiguiente, debe aparecer primero en el flujo de trabajo (antes que otras operaciones que se definen en la interfaz del servicio local) para que la validación tenga éxito. El siguiente código del ejemplo demuestra el uso de un atributo CorrelationInitializerAttribute.

[CorrelationInitializer]
void CreateTask( string taskId, string assignee, string text );

El atributo CorrelationAliasAttribute invalida el valor del atributo CorrelationParameterAttribute para un método o evento concreto cuando el valor de correlación se debe obtener de una ubicación distinta de la indicada por el atributo CorrelationParameterAttribute.

Una vez que se ha creado cada tarea, el servicio de tareas muestra un cuadro de mensaje para notificar al usuario que la tarea se ha creado. Al hacer clic en el botón Aceptar, el evento para completar la tarea se provoca para el id. de tarea correspondiente. Se trata de las mismas propiedades que se establecen en las actividades CreateTask y, por consiguiente, los eventos se ponen en correlación con las actividades TaskCompleted correctas.

Para generar el ejemplo

  1. Para descargar el ejemplo, haga clic en Descargar ejemplo.

    Así se extrae el proyecto de ejemplo en su disco duro local.

  2. Haga clic en Inicio, señale Programas, señale Microsoft Windows SDK y, a continuación, haga clic en CMD Shell.

  3. Vaya al directorio de origen del ejemplo.

  4. En el símbolo del sistema, escriba MSBUILD <nombre del archivo de solución>.

Para ejecutar el ejemplo

  • En la ventana del símbolo del sistema del SDK, ejecute el archivo .exe de la carpeta CorrelatedLocalService\bin\debug (o la carpeta CorrelatedLocalService\bin para la versión de VB del ejemplo), que se encuentra bajo la carpeta principal del ejemplo.

Consulte también

Referencia

HandleExternalEventActivity
ExternalDataExchangeAttribute
CorrelationInitializerAttribute
CorrelationParameterAttribute
CorrelationAliasAttribute

Otros recursos

Ejemplo de entrada simple
Ejemplos de comunicaciones

Footer image

Copyright © 2007 Microsoft Corporation. Reservados todos los derechos.