Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Dieses Thema gilt für Windows Workflow Foundation 4.
Die Interop-Aktivität ist eine .NET Framework 4 (WF 4)-Aktivität, die eine .NET Framework 3.5 (WF 3.5)-Aktivität in einem .NET Framework 4-Workflow umschließt. Die WF 3-Aktivität kann eine einzelne Blattaktivität oder eine ganze Aktivitätsstruktur darstellen. Die Ausführung (einschließlich Abbruch und Ausnahmebehandlung) und die Persistenz der .NET Framework 3.5-Aktivität treten im Kontext der .NET Framework 4 Workflowinstanz auf, die ausgeführt wird.
Hinweis: zu Visual Basic |
|---|
| Die Interop-Aktivität wird nur in der Toolbox des Workflow-Designers angezeigt, wenn für das Projekt des Workflows die Einstellung Zielframework auf .NET Framework 4 festgelegt wurde. |
Kriterien für die Verwendung einer WF 3-Aktivität mit einer Interop-Aktivität
Damit eine WF 3-Aktivität innerhalb einer Interop-Aktivität erfolgreich ausgeführt werden kann, müssen die folgenden Kriterien erfüllt werden:
Die WF 3-Aktivität muss von System.Workflow.ComponentModel.Activity abgeleitet sein.
Die WF 3-Aktivität muss als
publicdeklariert werden und darf nichtabstractsein.Die WF 3-Aktivität muss über einen öffentlichen Standardkonstruktor verfügen.
Aufgrund von Einschränkungen bei den Schnittstellentypen, die die Interop-Aktivität unterstützen kann, können das HandleExternalEventActivity-Objekt und das CallExternalMethodActivity-Objekt nicht direkt verwendet werden. Abgeleitete Aktivitäten, die mit dem Tool für Workflow-Kommunikationsaktivitäten (WCA.exe) erstellt wurden, können jedoch verwendet werden. Informationen dazu finden Sie unter Windows Workflow Foundation – Tools.
Konfigurieren einer WF 3-Aktivität innerhalb einer Interop-Aktivität
Um Daten zu konfigurieren und in bzw. aus einer WF 3-Aktivität über die Grenzen der Interoperation zu übergeben, werden die Eigenschaften und die Metadateneigenschaften der WF 3-Aktivität von der Interop-Aktivität verfügbar gemacht. Die Metadateneigenschaften der WF 3-Aktivität (z. B. Name) werden über die ActivityMetaProperties-Auflistung verfügbar gemacht. Dies ist eine Auflistung von Name-Wert-Paaren, mit denen die Werte für die Metadateneigenschaften der WF 3-Aktivität definiert werden. Eine Metadateneigenschaft ist eine Eigenschaft, die von der Abhängigkeitseigenschaft unterstützt wird, für die das Metadata-Kennzeichen festgelegt ist.
Die Eigenschaften der WF 3-Aktivität werden über die ActivityProperties-Auflistung verfügbar gemacht. Dies ist ein Satz von Name-Wert-Paaren, wobei jeder Wert ein Argument-Objekt ist, mit dem Argumente für die Eigenschaften der WF 3-Aktivität definiert werden. Da die Richtung der Eigenschaft einer WF 3-Aktivität nicht abgeleitet werden kann, wird jede Eigenschaft mit einem OutArgument-InArgument-Paar versehen. Abhängig von der Verwendung der Aktivitätseigenschaft empfiehlt es sich, einen InArgument-Eintrag, einen OutArgument-Eintrag oder beides bereitzustellen. Der erwartete Name des InArgument-Eintrags in der Auflistung entspricht dem Namen der Eigenschaft, wie sie für die WF 3-Aktivität definiert wurde. Der erwartete Name des OutArgument-Eintrags in der Auflistung ist eine Verkettung aus dem Namen der Eigenschaft und der Zeichenfolge "Out".
Einschränkungen bei der Verwendung einer WF 3-Aktivität innerhalb einer Interop-Aktivität
Die vom System bereitgestellten WF 3-Aktivitäten können nicht direkt in einer Interop-Aktivität umschlossen werden. Bei einigen WF 3-Aktivitäten ist der Grund hierfür, dass es eine analoge WF 4-Aktivität wie z. B. DelayActivity gibt. Bei anderen rührt dies daher, dass die Funktionalität der Aktivität nicht unterstützt wird. Viele vom System bereitgestellte WF 3-Aktivitäten können in Workflows verwendet werden, die von der Interop-Aktivität umschlossen werden, jedoch mit folgenden Einschränkungen:
Das Send-Objekt und das Receive-Objekt können nicht in einer Interop-Aktivität verwendet werden.
Die Objekte WebServiceInputActivity, WebServiceOutputActivity und WebServiceFaultActivity können nicht in einer Interop-Aktivität verwendet werden.
Das InvokeWorkflowActivity-Objekt kann nicht in einer Interop-Aktivität verwendet werden.
Das SuspendActivity-Objekt kann nicht in einer Interop-Aktivität verwendet werden.
Kompensationsbezogene Aktivitäten können nicht in einer Interop-Aktivität verwendet werden.
Es gibt auch einige bestimmte Verhaltensmerkmale bezüglich der Verwendung von WF 3-Aktivitäten in der Interop-Aktivität:
In einer Interop-Aktivität enthaltene WF 3-Aktivitäten werden initialisiert, wenn die Interop-Aktivität ausgeführt wird. In WF 4 gibt es vor der Ausführung keine Initialisierungsphase für eine Workflowinstanz.
Die WF 4-Laufzeit setzt unabhängig davon, wo diese Transaktion beginnt (innerhalb oder außerhalb einer Interop-Aktivität), keinen Prüfpunkt für den Workflowinstanzzustand, wenn eine Transaktion beginnt.
WF 3-Überwachungsdatensätze für Aktivitäten in einer Interop-Aktivität werden für WF 4-Nachverfolgungsteilnehmer in Form von InteropTrackingRecord-Objekten bereitgestellt. Das InteropTrackingRecord-Objekt ist eine Ableitung vom CustomTrackingRecord-Objekt.
Eine benutzerdefinierte WF 3-Aktivität kann über Workflowwarteschlangen in der Interoperationsumgebung auf Daten zugreifen, wie dies auch innerhalb der WF 3-Workflowlaufzeit möglich ist. Es sind keine benutzerdefinierten Änderungen an Aktivitätscode erforderlich. Auf dem Host werden Daten in eine WF 3-Workflowwarteschlange eingereiht, indem ein Bookmark-Objekt wieder aufgenommen wird. Der Name des Lesezeichens entspricht dem Workflow-Warteschlangennamen des IComparable-Objekts in Form einer Zeichenfolge.
Hinweis: zu Visual Basic