Freigeben über


WorkflowInstance Klasse

Definition

WorkflowInstance ist eine einfache Laufzeit pro Instanz zum Ausführen eines Workflowprogramms. Sie kann erstellt werden, um eine neue Workflowinstanz oder aus dem vorhandenen Instanzstatus zu erstellen. Die APIs, die verfügbar sind, WorkflowInstance.WorkflowInstanceControl sind die minimalen Laufzeitsteuerelemente, aus denen Vorgänge auf höherer Ebene implementiert werden können. Dieser API-Satz stellt die gesamte Funktionalität der Laufzeit dar. WorkflowInstance ist eine abstrakte Klasse und basiert auf der Implementierung der abstrakten Methoden eines Hosts, um Hostfunktionen wie Synchronisierung, Persistenz, Tracking und Erweiterungen bereitzustellen.

public ref class WorkflowInstance abstract
public abstract class WorkflowInstance
type WorkflowInstance = class
Public MustInherit Class WorkflowInstance
Vererbung
WorkflowInstance
Abgeleitet

Hinweise

WorkflowInstance ist single threaded und geht davon aus, dass der Host den gesamten Zugriff darauf synchronisiert. Ein Versuch, mehrere APIs gleichzeitig aufzurufen, führt zu einem InvalidOperationException Auslösen.

Intern gibt es WorkflowInstance zwei Zustände: Wird ausgeführt und angehalten. Die einzige Möglichkeit, die Laufzeit von angehalten in die Ausführung zu übertragen, besteht darin, aufzurufen Run. Alle Aktionen (mit Ausnahme von Pause) können nur ausgeführt werden, während die Laufzeit angehalten ist. Die Laufzeit wird in den folgenden Situationen spontan angehalten:

  • Ein schwerwiegender Fehler für die Laufzeit ist aufgetreten. Der Host wird signalisiert OnRequestAbort (was keinen Übergang zu "Angehalten" signalisiert) und dann durch OnNotifyPausedbenachrichtigt.

  • Eine Ausnahme im Workflow war uncaught und escaped the root. Der Host wird über die OnNotifyUnhandledException Methode benachrichtigt.

  • Der Planer hat keine Arbeitsaufgaben mehr und ist jetzt Idle. Der Host wird über die OnNotifyPaused Methode benachrichtigt. Beachten Sie, dass der Scheduler arbeitsaufgaben auslaufen könnte, da die Instanz im Leerlauf ist oder weil die Instanz abgeschlossen ist. Der State Wert der Controller Eigenschaft kann verwendet werden, um zwischen den beiden zu unterscheiden.

Der Host kann eine Änderung von "Ausführen" in "Angehalten" anfordern, indem die RequestPause von WorkflowInstance.WorkflowInstanceControl der Controller Eigenschaft zurückgegebene Instanz aufgerufen wirdPauseWhenPersistable. Diese Anforderung sollte nicht berücksichtigt werden, dass eine bestimmte Antwort bedeutet, dass der Host nicht versuchen sollte, ein OnNotify* oder OnRequestAbort einen bestimmten Aufruf anzuhalten, zu korrelieren. Als Reaktion auf eine Pausenanforderung wechselt die Laufzeit möglicherweise auf "Angehalten" und "Anruf" OnNotifyPaused , während der Zeitplaner noch ausstehende Arbeitsaufgaben aufweist. Der State Wert der Controller Eigenschaft kann verwendet werden, um zu bestimmen, ob der Planer keine Arbeit mehr hat oder von einer Anforderung zum Anhalten unterbrochen wurde.

Die RequestPause Von der Controller Eigenschaft zurückgegebene Methode der WorkflowInstance.WorkflowInstanceControl Instanz ist die einzige Methode, die aufgerufen werden kann, während sich der WorkflowInstance Zustand "Ausführen" befindet. Alle anderen Methoden lösen einen Aufruf aus InvalidOperationException . Angesichts der Regeln für WorkflowInstance den Übergang von einem Zustand zu einem anderen kann die öffentliche Vorstellung von "Ausführen" und "Paused" wie folgt definiert werden:

  • Ausführen – Der Zustand zwischen einem Aufruf Run und dem nächsten WorkflowInstance.OnNotify*.

  • Angehalten – Der Zustand zwischen dem letzten WorkflowInstance.OnNotify* und dem nächsten Aufruf von Run.

Konstruktoren

Name Beschreibung
WorkflowInstance(Activity, WorkflowIdentity)

Initialisiert eine neue Instanz der WorkflowInstance Klasse mit der angegebenen Workflowdefinitions- und Definitionsidentität.

WorkflowInstance(Activity)

Initialisiert eine neue Instanz der WorkflowInstance Klasse mit der angegebenen Workflowdefinition.

Eigenschaften

Name Beschreibung
Controller

Ruft die WorkflowInstance.WorkflowInstanceControl Instanz für diese WorkflowInstanceab.

DefinitionIdentity

Dient zum Abrufen oder Festlegen der Definitionsidentität von WorkflowInstance.

HostEnvironment

Dient zum Abrufen oder Festlegen der Stammumgebung für die Argumente und Variablen der Workflowinstanz.

Id

Ruft den eindeutigen Bezeichner für die Workflowinstanz ab.

IsReadOnly

Ruft einen Wert ab, der angibt, ob die Workflowinstanz initialisiert wurde.

SupportsInstanceKeys

Ruft einen Wert ab, der angibt, ob der Host die Zuordnung InstanceKeys mit einer Laufzeitinstanz unterstützt.

SynchronizationContext

Ruft die SynchronizationContext zum Planen der Workflowinstanz verwendete Instanz ab oder legt sie fest.

WorkflowDefinition

Ruft die Workflowdefinition der Workflowinstanz ab.

Methoden

Name Beschreibung
BeginFlushTrackingRecords(TimeSpan, AsyncCallback, Object)

Wird von der Workflowlaufzeit aufgerufen, um mit dem Senden ausstehender Nachverfolgungsdatensätze an die asynchrone Nachverfolgung von Teilnehmern zu beginnen.

DisposeExtensions()

Aufrufe Dispose() für alle Erweiterungen, die implementiert werden IDisposable.

EndFlushTrackingRecords(IAsyncResult)

Wird von der Workflowlaufzeit aufgerufen, um den Track-Vorgang zu beenden.

Equals(Object)

Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht.

(Geerbt von Object)
FlushTrackingRecords(TimeSpan)

Wird von der Workflowlaufzeit aufgerufen, um ausstehende Nachverfolgungsdatensätze an Die Teilnehmer zu senden.

GetActivitiesBlockingUpdate(Object, DynamicUpdateMap)

Ruft die Liste der Aktivitäten ab, die die Aktualisierung des Workflows blockieren.

GetExtension<T>()

Gibt eine Erweiterung des angegebenen Typs zurück.

GetExtensions<T>()

Gibt alle Für den angegebenen Typ gefundenen Erweiterungen zurück.

GetHashCode()

Dient als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft die Type der aktuellen Instanz ab.

(Geerbt von Object)
Initialize(IDictionary<String,Object>, IList<Handle>)

Vom Host aufgerufen, um die Workflowinstanz mit den Argumentwerten und Ausführungseigenschaften zu initialisieren.

Initialize(Object, DynamicUpdateMap)

Vom Host aufgerufen, um die Workflowinstanz mit dem Laufzeitzustand des Workflows zu initialisieren und die Zuordnung zu aktualisieren.

Initialize(Object)

Vom Host aufgerufen, um die Workflowinstanz mit dem Laufzeitzustand des Workflows zu initialisieren.

MemberwiseClone()

Erstellt eine flache Kopie der aktuellen Object.

(Geerbt von Object)
OnBeginAssociateKeys(ICollection<InstanceKey>, AsyncCallback, Object)

Wird von der Workflowlaufzeit aufgerufen, um den Host zu benachrichtigen, dass neue Instanzschlüssel dieser Instanz zugeordnet werden sollen.

OnBeginFlushTrackingRecords(AsyncCallback, Object)

Asynchroner Aufruf, um den Host aufzufordern, ausstehende Nachverfolgungsdatensätze zu leeren, um Teilnehmer zu verfolgen.

OnBeginPersist(AsyncCallback, Object)

Asynchroner Aufruf, um den Host aufzufordern, den Workflow beizubehalten.

OnBeginResumeBookmark(Bookmark, Object, TimeSpan, AsyncCallback, Object)

Wird von der Workflowlaufzeit aufgerufen, um den Host zu benachrichtigen, dass ein Textmarke-Vorgang gestartet wird.

OnDisassociateKeys(ICollection<InstanceKey>)

Wird von der Workflowlaufzeit aufgerufen, um den Host zu benachrichtigen, dass eine bestimmte Gruppe von Instanzschlüsseln dieser Instanz nicht mehr zugeordnet werden sollte.

OnEndAssociateKeys(IAsyncResult)

Wird von der Workflowlaufzeit aufgerufen, um den Host zu benachrichtigen, dass ein Vorgang mit Zuordnen von Schlüsseln abgeschlossen ist.

OnEndFlushTrackingRecords(IAsyncResult)

Wird von der Workflowlaufzeit aufgerufen, um den Host zu benachrichtigen, wenn der Vorgang zum Leeren der Nachverfolgungsdatensätze abgeschlossen ist.

OnEndPersist(IAsyncResult)

Wird von der Workflowlaufzeit aufgerufen, um den Host darüber zu benachrichtigen, dass ein permanenter Vorgang abgeschlossen ist.

OnEndResumeBookmark(IAsyncResult)

Wird von der Workflowlaufzeit aufgerufen, um den Host zu benachrichtigen, dass ein Textmarke-Vorgang abgeschlossen ist.

OnNotifyPaused()

Wird von der Workflowlaufzeit aufgerufen, um den Host zu benachrichtigen, dass die Workflowinstanz vom Ausführungsstatus in den angehaltenen Zustand übergestellt wurde.

OnNotifyUnhandledException(Exception, Activity, String)

Wird von der Workflowlaufzeit aufgerufen, um den Host zu benachrichtigen, dass in der Workflowinstanz eine unbehandelte Ausnahme aufgetreten ist.

OnRequestAbort(Exception)

Wird von der Workflowlaufzeit aufgerufen, um den Host zu benachrichtigen, dass ein Abbruchvorgang für die Workflowinstanz angefordert wurde.

RegisterExtensionManager(WorkflowInstanceExtensionManager)

Wird vom Host aufgerufen, um den angegebenen Erweiterungs-Manager zu registrieren, überprüfen Sie, ob alle erforderlichen Erweiterungen vorhanden sind, und um die Sammlung der zu verwendenden Erweiterungen zu initialisieren.

ThrowIfReadOnly()

Löst ein InvalidOperationException , wenn die Workflowinstanz initialisiert wurde, wie durch IsReadOnly.

ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Gilt für: