Condividi tramite


Esempio di servizio locale correlato

Download sample

In questo esempio viene illustrato l'utilizzo di attributi correlativi con i servizi locali per generare eventi correlati a un'istanza del flusso di lavoro. Gli attributi correlativi devono essere utilizzati su un'interfaccia del servizio locale quando un'istanza del flusso di lavoro è in ascolto di istanze diverse dello stesso evento su un'interfaccia del servizio locale.

In questo esempio, un flusso di lavoro crea due attività, quindi attende di essere notificato (dallo stesso evento del servizio locale) al completamento di tali attività. In questo caso, quando il codice esterno genera l'evento nel flusso di lavoro, l'infrastruttura del servizio locale deve basarsi su dati presenti nell'evento che vengono generati (il valore correlativo) per indirizzare l'evento all'attività HandleExternalEventActivity appropriata nell'istanza del flusso di lavoro.

L'attributo ExternalDataExchangeAttribute è un attributo obbligatorio che indica che il servizio locale partecipa allo scambio di dati con un flusso di lavoro.

L'attributo CorrelationParameterAttribute indica che per impostazione predefinita, il valore correlativo è reperibile nel parametro con il nome specificato nei metodi ed eventi definiti sull'interfaccia. Nel codice proveniente dall'esempio riportato di seguito viene illustrato l'utilizzo di un attributo CorrelationParameterAttribute:

[CorrelationParameter("taskId")]
public interface ITaskService

L'attributo CorrelationInitializerAttribute indica che il metodo attribuito è quello che inizializza il valore correlativo e deve pertanto essere visualizzato per primo nel flusso di lavoro (prima di altre operazioni definite sull'interfaccia del servizio locale) affinché la convalida avvenga correttamente. Nel codice proveniente dall'esempio riportato di seguito viene illustrato l'utilizzo di un attributo CorrelationInitializerAttribute.

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

L'attributo CorrelationAliasAttribute ignora l'impostazione dell'attributo CorrelationParameterAttribute per un metodo o un evento specifico se il valore correlativo deve essere ottenuto da un percorso diverso da quello indicato dall'attributo CorrelationParameterAttribute.

Al termine della creazione di ogni attività, il servizio dell'attività visualizza una finestra di messaggio che avvisa l'utente che l'attività è stata creata. Facendo clic sul pulsante OK, viene generato l'evento per il completamento dell'attività per l'ID dell'attività corrispondente. Queste proprietà sono uguali a quelle impostate sulle attività CreateTask, pertanto gli eventi sono correlati alle attività TaskCompleted corrette.

Per generare l'esempio

  1. Scaricare l'esempio facendo clic su Scarica esempio.

    In tal modo viene estratto il progetto di esempio sul disco rigido locale.

  2. Fare clic sul pulsante Start, scegliere Programmi, Microsoft Windows SDK e fare clic su CMD Shell.

  3. Accedere alla directory di origine dell'esempio.

  4. Al prompt dei comandi, immettere MSBUILD <nome file soluzione>.

Per eseguire l'esempio

  • Nella finestra del prompt dei comandi di SDK, eseguire il file exe nella cartella CorrelatedLocalService\bin\debug (o nella cartella CorrelatedLocalService\bin per la versione VB dell'esempio), collocata sotto la cartella principale dell'esempio.

Vedere anche

Riferimenti

HandleExternalEventActivity
ExternalDataExchangeAttribute
CorrelationInitializerAttribute
CorrelationParameterAttribute
CorrelationAliasAttribute

Altre risorse

Esempio di semplice input
Esempi di comunicazione

Footer image

Copyright © 2007 Microsoft Corporation. Tutti i diritti riservati.