Beispiel für korrelierten lokalen Dienst

Download sample

Dieses Beispiel veranschaulicht die Verwendung von Korrelationsattributen mit lokalen Diensten, um korrelierte Ereignisse für eine Workflowinstanz auszulösen. Korrelationsattribute müssen für eine lokale Dienstschnittstelle verwendet werden, wenn eine Workflowinstanz möglicherweise verschiedene Instanzen des gleichen Ereignisses in einer lokalen Dienstschnittstelle überwacht.

In diesem Beispiel erstellt ein Workflow zwei Aufgaben und wartet dann auf eine Benachrichtigung (durch das gleiche lokale Dienstereignis), wenn diese Aufgaben beendet wurden. In diesem Fall, wenn ein Ereignis für den Workflow durch externen Code ausgelöst wird, muss sich die lokale Dienstinfrastruktur auf die Daten verlassen können, die sich im ausgelösten Ereignis befinden (der Korrelationswert), um das Ereignis an die entsprechende HandleExternalEventActivity-Aktivität in der Workflowinstanz weiterleiten zu können.

Das ExternalDataExchangeAttribute-Attribut ist ein erforderliches Attribut, das angibt, dass der lokale Dienst am Datenaustausch mit einem Workflow beteiligt ist.

Das CorrelationParameterAttribute-Attribut gibt an, dass der Korrelationswert standardmäßig in dem Parameter mit dem angegebenen Namen in den Methoden und Ereignissen, die für die Schnittstelle definiert sind, zu finden ist. Der folgende Code aus dem Beispiel veranschaulicht die Verwendung des CorrelationParameterAttribute-Attributs:

[CorrelationParameter("taskId")]
public interface ITaskService

Das CorrelationInitializerAttribute-Attribut gibt an, dass die attributierte Methode die Methode ist, die den Korrelationswert initialisiert. Sie muss daher zuerst im Workflow auftreten (vor anderen Operationen, die in der lokalen Dienstschnittstelle definiert sind), damit die Überprüfung erfolgreich durchgeführt werden kann. Der folgende Code aus dem Beispiel veranschaulicht die Verwendung des CorrelationInitializerAttribute-Attributs.

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

Das CorrelationAliasAttribute-Attribut überschreibt die CorrelationParameterAttribute-Attributeinstellung für eine bestimmte Methode oder ein bestimmtes Ereignis, wenn der Korrelationswert von einem anderen Speicherort als dem, der vom CorrelationParameterAttribute-Attribut angegeben wird, abgerufen werden muss.

Nach der Erstellung der einzelnen Aufgaben zeigt der Aufgabendienst ein Meldungsdialogfeld an, um den Benutzer zu benachrichtigen, dass die Aufgabe erstellt wurde. Beim Klicken auf OK wird das Ereignis zum Abschließen der Aufgabe für die entsprechende Aufgaben-ID ausgelöst. Hierbei handelt es sich um die gleichen Eigenschaften, die auch für CreateTask-Aktivitäten festgelegt sind; die Ereignisse werden daher mit den richtigen TaskCompleted-Aktivitäten korreliert.

So erstellen Sie das Beispiel

  1. Laden Sie das Beispiel herunter, indem Sie auf Beispiel downloaden klicken.

    Hierdurch wird das Beispielprojekt auf die lokale Festplatte extrahiert.

  2. Klicken Sie auf Start, zeigen Sie auf Programme, zeigen Sie auf Microsoft Windows SDK, und klicken Sie dann auf CMD Shell.

  3. Wechseln Sie zum Quellverzeichnis des Beispiels.

  4. Geben Sie an der Eingabeaufforderung MSBUILD <Name der Projektmappendatei> ein.

So führen Sie das Beispiel aus

  • Führen Sie im Eingabeaufforderungsfenster des SDKs die EXE-Datei im Ordner CorrelatedLocalService\bin\debug aus (bzw. im Ordner CorrelatedLocalService\bin für die VB-Version des Beispiels), der sich unter dem Hauptordner des Beispiels befindet.

Siehe auch

Referenz

HandleExternalEventActivity
ExternalDataExchangeAttribute
CorrelationInitializerAttribute
CorrelationParameterAttribute
CorrelationAliasAttribute

Weitere Ressourcen

Beispiel für einfache Eingabe
Kommunikationsbeispiele

Footer image

Copyright © 2007 by Microsoft Corporation. Alle Rechte vorbehalten.