WorkflowInstance Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
WorkflowInstance is een lichtgewicht runtime per exemplaar voor het uitvoeren van een werkstroomprogramma. Het kan worden samengesteld om een nieuw werkstroomexemplaren of een bestaande exemplaarstatus te maken. De API's die WorkflowInstance.WorkflowInstanceControl beschikbaar worden gesteld, zijn de minimale set runtime-besturingselementen waaruit bewerkingen op een hoger niveau kunnen worden geïmplementeerd. Deze API-set vertegenwoordigt de volledige breedte van de functionaliteit van de runtime. WorkflowInstance is een abstracte klasse en is afhankelijk van de implementatie van de abstracte methoden van een host om hostfunctionaliteit te bieden, zoals synchronisatie, persistentie, tracering en extensies.
public ref class WorkflowInstance abstract
public abstract class WorkflowInstance
type WorkflowInstance = class
Public MustInherit Class WorkflowInstance
- Overname
-
WorkflowInstance
- Afgeleid
Opmerkingen
WorkflowInstance is één threaded en gaat ervan uit dat de host alle toegang tot de host synchroniseert. Een poging om meerdere API's tegelijk aan te roepen, resulteert in een InvalidOperationException gegenereerde fout.
Intern heeft een twee WorkflowInstance statussen: Actief en Onderbroken. De enige manier om ervoor te zorgen dat de runtime wordt overgezet van onderbroken naar actief, is door aan te roepen Run. Alle acties (behalve Onderbreken) kunnen alleen worden uitgevoerd terwijl de runtime is onderbroken. De runtime wordt spontaan onderbroken in de volgende situaties:
Er is een fout opgetreden die onherstellijk is voor de runtime. De host wordt gesignaleerd OnRequestAbort (die geen overgang naar Onderbroken signaleert) en vervolgens op de hoogte wordt gesteld via OnNotifyPaused.
Een uitzondering in de werkstroom was niet aangevallen en ontsnapte aan de hoofdmap. De host wordt op de hoogte gesteld via de OnNotifyUnhandledException methode.
De planner heeft geen werkitems meer en is nu Idle. De host wordt op de hoogte gesteld via de OnNotifyPaused methode. Houd er rekening mee dat de scheduler onvoldoende werkitems kan hebben omdat het exemplaar niet actief is of omdat het exemplaar is voltooid. De State waarde van de Controller eigenschap kan worden gebruikt om onderscheid te maken tussen de twee.
De host kan een wijziging aanvragen van Actief naar Onderbroken door het aanroepen van de RequestPause of PauseWhenPersistable methoden van het WorkflowInstance.WorkflowInstanceControl exemplaar dat door de Controller eigenschap wordt geretourneerd. Deze aanvraag mag niet worden beschouwd als een specifiek antwoord, wat betekent dat de host niet mag proberen een OnNotify* te correleren of OnRequestAbort met een specifieke aanroep om te onderbreken. Als reactie op een onderbrekingsaanvraag kan de runtime overschakelen naar Onderbroken en aanroepen OnNotifyPaused terwijl de planner nog steeds werkitems in behandeling heeft. De State waarde van de Controller eigenschap kan worden gebruikt om te bepalen of de planner geen werk meer heeft of is onderbroken door een aanvraag om te onderbreken.
De RequestPause methode van het WorkflowInstance.WorkflowInstanceControl exemplaar dat door de Controller eigenschap wordt geretourneerd, is de enige methode die kan worden aangeroepen terwijl de WorkflowInstance status Actief is. Met alle andere methoden wordt een InvalidOperationException if-aangeroepen methode gegooid. Gezien de regels voor de WorkflowInstance overgang van de ene status naar de andere, kan het openbare begrip Actief en Onderbroken als volgt worden gedefinieerd:
Wordt uitgevoerd: de status tussen een aanroep naar Run en de volgende WorkflowInstance.OnNotify*.
Onderbroken - De status tussen de laatste WorkflowInstance.OnNotify* en de volgende aanroep naar Run.
Constructors
| Name | Description |
|---|---|
| WorkflowInstance(Activity, WorkflowIdentity) |
Initialiseert een nieuw exemplaar van de WorkflowInstance klasse met de opgegeven werkstroomdefinitie en definitie-id. |
| WorkflowInstance(Activity) |
Initialiseert een nieuw exemplaar van de WorkflowInstance klasse met de opgegeven werkstroomdefinitie. |
Eigenschappen
| Name | Description |
|---|---|
| Controller |
Hiermee wordt het WorkflowInstance.WorkflowInstanceControl exemplaar voor dit bestand ophaalt WorkflowInstance. |
| DefinitionIdentity |
Hiermee wordt de definitie-id van WorkflowInstance. |
| HostEnvironment |
Hiermee haalt u de hoofdomgeving op voor de argumenten en variabelen van het werkstroomexemplaren. |
| Id |
Hiermee haalt u de unieke id voor het werkstroomexemplaren op. |
| IsReadOnly |
Hiermee wordt een waarde opgehaald die aangeeft of het werkstroomexemplaren zijn geïnitialiseerd. |
| SupportsInstanceKeys |
Hiermee wordt een waarde opgehaald die aangeeft of de host ondersteuning biedt voor de koppeling van InstanceKeys een runtime-exemplaar. |
| SynchronizationContext |
Hiermee haalt u het gebruikte exemplaar op of stelt u deze in voor het SynchronizationContext plannen van het werkstroomexemplaren. |
| WorkflowDefinition |
Hiermee haalt u de werkstroomdefinitie van het werkstroomexemplaren op. |
Methoden
| Name | Description |
|---|---|
| BeginFlushTrackingRecords(TimeSpan, AsyncCallback, Object) |
Aangeroepen door de werkstroomruntime om wachtende traceringsrecords te verzenden om deelnemers asynchroon bij te houden. |
| DisposeExtensions() |
Roept Dispose() alle extensies aan die worden geïmplementeerd IDisposable. |
| EndFlushTrackingRecords(IAsyncResult) |
Aangeroepen door de werkstroomruntime om de trackbewerking te beëindigen. |
| Equals(Object) |
Bepaalt of het opgegeven object gelijk is aan het huidige object. (Overgenomen van Object) |
| FlushTrackingRecords(TimeSpan) |
Wordt aangeroepen door de werkstroomruntime om traceringsrecords in behandeling te verzenden voor het bijhouden van deelnemers. |
| GetActivitiesBlockingUpdate(Object, DynamicUpdateMap) |
Haalt de lijst met activiteiten op die de update van de werkstroom blokkeert. |
| GetExtension<T>() |
Retourneert een extensie van het opgegeven type. |
| GetExtensions<T>() |
Retourneert alle extensies die voor het opgegeven type zijn gevonden. |
| GetHashCode() |
Fungeert als de standaardhashfunctie. (Overgenomen van Object) |
| GetType() |
Hiermee haalt u de Type huidige instantie op. (Overgenomen van Object) |
| Initialize(IDictionary<String,Object>, IList<Handle>) |
Wordt aangeroepen door de host om het werkstroomexemplaren te initialiseren met de argumentwaarden en uitvoeringseigenschappen. |
| Initialize(Object, DynamicUpdateMap) |
Wordt aangeroepen door de host om het werkstroomexemplaren te initialiseren met de runtimestatus van de werkstroom en de toewijzing bij te werken. |
| Initialize(Object) |
Wordt aangeroepen door de host om het werkstroomexemplaren te initialiseren met de runtimestatus van de werkstroom. |
| MemberwiseClone() |
Hiermee maakt u een ondiepe kopie van de huidige Object. (Overgenomen van Object) |
| OnBeginAssociateKeys(ICollection<InstanceKey>, AsyncCallback, Object) |
Wordt aangeroepen door de werkstroomruntime om de host op de hoogte te stellen dat er nieuwe exemplaarsleutels aan dit exemplaar moeten worden gekoppeld. |
| OnBeginFlushTrackingRecords(AsyncCallback, Object) |
Asynchrone aanroep om de host te vragen om traceringsrecords in behandeling leeg te maken voor het bijhouden van deelnemers. |
| OnBeginPersist(AsyncCallback, Object) |
Asynchrone aanroep om de host te vragen om de werkstroom te behouden. |
| OnBeginResumeBookmark(Bookmark, Object, TimeSpan, AsyncCallback, Object) |
Aangeroepen door de werkstroomruntime om de host op de hoogte te stellen dat een cv-bladwijzerbewerking wordt gestart. |
| OnDisassociateKeys(ICollection<InstanceKey>) |
Aangeroepen door de werkstroomruntime om de host op de hoogte te stellen dat een bepaalde set exemplaarsleutels niet meer aan dit exemplaar mag worden gekoppeld. |
| OnEndAssociateKeys(IAsyncResult) |
Wordt aangeroepen door de werkstroomruntime om de host op de hoogte te stellen dat een bewerking voor koppelen van sleutels is voltooid. |
| OnEndFlushTrackingRecords(IAsyncResult) |
Wordt aangeroepen door de werkstroomruntime om de host op de hoogte te stellen wanneer de bewerking voor het leegmaken van records is voltooid. |
| OnEndPersist(IAsyncResult) |
Wordt aangeroepen door de werkstroomruntime om de host op de hoogte te stellen dat een persistente bewerking is voltooid. |
| OnEndResumeBookmark(IAsyncResult) |
Aangeroepen door de werkstroomruntime om de host op de hoogte te stellen dat een cv-bladwijzerbewerking is voltooid. |
| OnNotifyPaused() |
Aangeroepen door de werkstroomruntime om de host op de hoogte te stellen dat het werkstroomexemplaren zijn overgestapt van de actieve status naar de onderbroken status. |
| OnNotifyUnhandledException(Exception, Activity, String) |
Aangeroepen door de werkstroomruntime om de host op de hoogte te stellen dat er een niet-verwerkte uitzondering is opgetreden in het werkstroomexemplaren. |
| OnRequestAbort(Exception) |
Aangeroepen door de werkstroomruntime om de host op de hoogte te stellen dat er een bewerking is aangevraagd voor het werkstroomexemplaren. |
| RegisterExtensionManager(WorkflowInstanceExtensionManager) |
Wordt aangeroepen door de host om de opgegeven extensiebeheer te registreren, te valideren dat alle vereiste extensies aanwezig zijn en om de verzameling extensies te initialiseren die moeten worden gebruikt. |
| ThrowIfReadOnly() |
Genereert een InvalidOperationException als het werkstroomexemplaren zijn geïnitialiseerd, zoals wordt bepaald door IsReadOnly. |
| ToString() |
Retourneert een tekenreeks die het huidige object vertegenwoordigt. (Overgenomen van Object) |