Warten auf Eingabeaktivität

Dieses Thema gilt für Windows Workflow Foundation 4.

In diesem Beispiel wird veranschaulicht, wie benannte Lesezeichen in einem Workflow erstellt werden. Windows Workflow Foundation (WF) stellt keine Aktivität zur deklarativen Lesezeichenerstellung bereit. Wenn Sie daher in Ihrem Workflow ein Lesezeichen erstellen möchten, müssen Sie eine benutzerdefinierte Aktivität schreiben, die eines erstellt. Die in diesem Beispiel definierte WaitForInput-Aktivität stellt diese Funktionalität bereit, damit Benutzer Lesezeichen deklarativ innerhalb eines Workflows erstellen können.

Projekte in diesem Beispiel

Projektname

Beschreibung

Hauptdateien

WaitForInput

Enthält die WaitForInput-Aktivität und ihren Designer.

WaitForInput.cs

Definition der WaitForInput-Aktivität.

WaitForInputDesigner.xaml

Benutzerdefinierter Designer für die WaitForInput-Aktivität.

TypeToFirstGenericArgumentConverter.cs

WPF-Typkonverter, der verwendet wird, um den generischen Typ der Aktivität im Designer zu aktualisieren.

WaitForInputTestClient

Beispielclientanwendung, die mithilfe des Workflow-Designers unter Verwendung mehrerer WaitForInput-Aktivitäten einen Workflow konfiguriert und ausführt.

Sequence1.xaml

Ein sequenzieller Workflow, der die WaitForInput-Aktivität verwendet.

Program.cs

Führt eine Instanz des in "Sequence1.xaml" definierten Workflows aus.

WaitForInput-Aktivität

Die WaitForInput-Aktivität erstellt in einem Workflow ein benanntes Lesezeichen. Das Lesezeichen wartet auf ein Signal und empfängt Daten von seinem konfigurierten Typ. Nachdem das Lesezeichen wiederaufgenommen wurde, sind die an den Workflow übergebenen Daten über die Result-Eigenschaft verfügbar.

Die WaitForInput-Aktivität wird von der NativeActivity-Klasse abgeleitet, da sie Lesezeichen erstellen muss, auf die nur durch die NativeActivityContext-Klasse zugegriffen werden kann.

Auf die Aktivität können zur Bindung an einen Designer, zum Hinzufügen der generischen Argumentfunktion, die aktualisiert werden kann, und zum Festlegen der standardmäßigen generischen Typs auf "Zeichenfolge" drei Attribute angewendet werden. Die Aktivität weist auch die in der folgenden Tabelle aufgeführten Argumente auf.

Name

Typ

Beschreibung

TResult

Generisches Argument (TResult)

Der Typ des Lesezeichens. Dies ist der Typ der Daten, der beim Wiederaufnehmen des Lesezeichens an das Lesezeichen übergeben werden soll.

BookmarkName

InArgument<Zeichenfolge>

Der Name des Lesezeichens.

Ergebnis

InArgument<TResult>

Die Daten, die an die Aktivität übergeben werden, wenn das Lesezeichen wiederaufgenommen wird.

WaitForInput-Aktivitätsdesigner

Der WaitForInput-Aktivitätsdesigner wird in der Datei "WaitForInputDesigner.xaml" implementiert. Die WaitForInput-Aktivität und ihr Designer sind in derselben Assembly enthalten. In der folgenden Abbildung ist die WaitForInput-Aktivität in der Toolbox innerhalb einer Kategorie dargestellt, die denselben Namen wie die Assembly hat.

Bildschirmabbildung der WaitForInput-Toolbox

In der folgenden Abbildung ist der WaitForInput-Designer dargestellt. Da die WaitForInput-Aktivität ist sehr einfach ist, können alle Argumente im Designer direkt in der Designeroberfläche festgelegt werden.

WaitForInput-Aktivitätsdesigner

So verwenden Sie dieses Beispiel

  1. Öffnen Sie Datei "WaitForInput.sln" in Visual Studio 2010.

  2. Drücken Sie F6, um die Projektmappe zu erstellen.

  3. Drücken Sie STRG+F5, um den das Beispiel zu starten.

Ee620806.Important(de-de,VS.100).gif Hinweis:
Die Beispiele sind möglicherweise bereits auf dem Computer installiert. Überprüfen Sie das folgende (standardmäßige) Verzeichnis, bevor Sie fortfahren.

<Installationslaufwerk>:\WF_WCF_Samples

Wenn dieses Verzeichnis nicht vorhanden ist, rufen Sie Windows Communication Foundation (WCF) and Windows Workflow Foundation (WF) Samples for .NET Framework 4 auf, um alle Windows Communication Foundation (WCF)- und WF-Beispiele herunterzuladen. Dieses Beispiel befindet sich im folgenden Verzeichnis.

<Installationslaufwerk>:\WF_WCF_Samples\WF\Scenario\ActivityLibrary\WaitForInput