WorkflowInstance Třída

Definice

WorkflowInstance je odlehčený modul runtime pro spuštění programu pracovního postupu. Dá se vytvořit tak, aby se vytvořila nová instance pracovního postupu nebo z existujícího stavu instance. Rozhraní API, která WorkflowInstance.WorkflowInstanceControl zpřístupňují, jsou minimální sadou řídicích prvků modulu runtime, ze kterých lze implementovat operace vyšší úrovně. Tato sada rozhraní API představuje celou škálu funkcí modulu runtime. WorkflowInstance je abstraktní třída a spoléhá na implementaci svých abstraktních metod hostitele, aby poskytovala funkce hostitele, jako je synchronizace, trvalá, sledování a rozšíření.

public ref class WorkflowInstance abstract
public abstract class WorkflowInstance
type WorkflowInstance = class
Public MustInherit Class WorkflowInstance
Dědičnost
WorkflowInstance
Odvozené

Poznámky

WorkflowInstance je jedním vláknem a předpokládá, že hostitel synchronizuje veškerý přístup k němu. Pokus o volání více rozhraní API současně způsobí InvalidOperationException vyvolání.

Interně WorkflowInstance má dva stavy: spuštěno a pozastaveno. Jediným způsobem, jak způsobit přechod modulu runtime z pozastavení na běhu, je zavolat Run . Všechny akce (s výjimkou pozastavení) lze považovat pouze v případě, že je modul runtime pozastaven. Modul runtime bude v následujících situacích spontánní pozastavený:

  • Došlo k závažné chybě modulu runtime. Hostitel bude signalizovat prostřednictvím OnRequestAbort (který nesignalizuje přechod na pozastavený) a pak prostřednictvím oznámení OnNotifyPaused .

  • Výjimka v pracovním postupu byla odzachycena a řídicí složka byla uvozena řídicím adresářem. Hostitel bude upozorněn prostřednictvím OnNotifyUnhandledException metody.

  • Scheduler má mimo pracovní položky a teď je Idle . Hostitel bude upozorněn prostřednictvím OnNotifyPaused metody. Všimněte si, že Scheduler mohl mít nedostatek pracovních položek, protože instance je nečinná nebo protože instance je dokončená. StateHodnotu Controller Vlastnosti lze použít k odlišení obou hodnot.

Hostitel může požádat o změnu v běhu na pozastavené voláním RequestPause PauseWhenPersistable metod nebo WorkflowInstance.WorkflowInstanceControl instance vrácených Controller vlastností. Tato žádost by se neměla považovat za konkrétní odpověď, což znamená, že by se hostitel neměl pokoušet o korelaci s požadavkem * nebo OnRequestAbort s konkrétním voláním pro pozastavení. V reakci na žádost o pozastavení může modul runtime přejít na pozastaveno a volat, OnNotifyPaused zatímco Scheduler stále čeká na pracovní položky. StateHodnotu Controller Vlastnosti lze použít k určení, zda Plánovač již nepracuje, nebo byl přerušen požadavkem na pozastavení.

RequestPauseMetoda WorkflowInstance.WorkflowInstanceControl instance vrácená Controller vlastností je jediná metoda, která může být volána, když WorkflowInstance je ve stavu spuštěno. Všechny ostatní metody vyvolávají výjimku InvalidOperationException , pokud je volána. Vzhledem k pravidlům WorkflowInstance , jak používat přechod z jednoho stavu do druhého, veřejný pojem spuštěných a pozastavených může být definován následujícím způsobem:

  • Running – stav mezi voláním Run a další WorkflowInstance. innotify *.

  • Pozastaveno – stav mezi poslední instanci WorkflowInstance. informující * a dalším voláním Run .

Konstruktory

WorkflowInstance(Activity)

Inicializuje novou instanci WorkflowInstance třídy se zadanou definicí pracovního postupu.

WorkflowInstance(Activity, WorkflowIdentity)

Inicializuje novou instanci WorkflowInstance třídy se zadanou definicí pracovního postupu a identitou definice.

Vlastnosti

Controller

Načte WorkflowInstance.WorkflowInstanceControl instanci pro tento WorkflowInstance .

DefinitionIdentity

Získá nebo nastaví identitu definice pro WorkflowInstance .

HostEnvironment

Získá nebo nastaví kořenové prostředí pro argumenty a proměnné instance pracovního postupu.

Id

Získá jedinečný identifikátor instance pracovního postupu.

IsReadOnly

Získá hodnotu, která označuje, zda byla instance pracovního postupu inicializována.

SupportsInstanceKeys

Získá hodnotu, která označuje, zda hostitel podporuje přidružení InstanceKeys s instancí run-time.

SynchronizationContext

Získá nebo nastaví SynchronizationContext použitou pro plánování instance pracovního postupu.

WorkflowDefinition

Získá definici pracovního postupu instance pracovního postupu.

Metody

BeginFlushTrackingRecords(TimeSpan, AsyncCallback, Object)

Volá se modulem runtime pracovního postupu pro zahájení odesílání nevyřízených záznamů sledování pro asynchronní sledování účastníků.

DisposeExtensions()

Volá Dispose() všechna rozšíření, která implementují IDisposable .

EndFlushTrackingRecords(IAsyncResult)

Volá se modulem runtime pracovního postupu, aby se ukončila operace sledování.

Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

(Zděděno od Object)
FlushTrackingRecords(TimeSpan)

Volá se modulem runtime pracovního postupu, aby odesílala nevyřízené záznamy pro sledování účastníků.

GetActivitiesBlockingUpdate(Object, DynamicUpdateMap)

Načte seznam aktivit, které blokují aktualizaci pracovního postupu.

GetExtension<T>()

Vrátí příponu zadaného typu.

GetExtensions<T>()

Vrátí všechna rozšíření nalezená pro zadaný typ.

GetHashCode()

Slouží jako výchozí funkce hash.

(Zděděno od Object)
GetType()

Type Získá aktuální instanci.

(Zděděno od Object)
Initialize(IDictionary<String,Object>, IList<Handle>)

Volá se hostitelem pro inicializaci instance pracovního postupu s hodnotami argumentů a vlastnostmi spuštění.

Initialize(Object)

Volá se hostitelem pro inicializaci instance pracovního postupu se stavem běhu pracovního postupu.

Initialize(Object, DynamicUpdateMap)

Volá se hostitelem pro inicializaci instance pracovního postupu s časovým plánem běhu pracovního postupu a aktualizací mapy.

MemberwiseClone()

Vytvoří použádnou kopii aktuálního souboru Object.

(Zděděno od Object)
OnBeginAssociateKeys(ICollection<InstanceKey>, AsyncCallback, Object)

Volá se modulem runtime pracovního postupu, který upozorní hostitele, že by měly být k této instanci přidruženy nové klíče instancí.

OnBeginFlushTrackingRecords(AsyncCallback, Object)

Asynchronní volání metody ASK hostitele k vyprázdnění záznamů nevyřízených položek pro sledování účastníků

OnBeginPersist(AsyncCallback, Object)

Asynchronní volání pro vyžádání hostitele, aby zachovalo pracovní postup

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

Volá se modulem runtime pracovního postupu, který oznamuje hostiteli, že začíná operace záložky obnovit.

OnDisassociateKeys(ICollection<InstanceKey>)

Volá se modulem runtime pracovního postupu, který upozorní hostitele, že určitá sada klíčů instancí by se už neměla přidružit k této instanci.

OnEndAssociateKeys(IAsyncResult)

Volá se modulem runtime pracovního postupu, který upozorní hostitele, že operace přidružení klíčů je dokončená.

OnEndFlushTrackingRecords(IAsyncResult)

Volá se modulem runtime pracovního postupu, který upozorní hostitele, když je operace vyprázdnění záznamů sledování dokončená.

OnEndPersist(IAsyncResult)

Volá se modulem runtime pracovního postupu, který oznamuje hostiteli, že se trvalá operace dokončila.

OnEndResumeBookmark(IAsyncResult)

Volá se modulem runtime pracovního postupu, který upozorní hostitele, že operace obnovení záložky je dokončená.

OnNotifyPaused()

Volá se modulem runtime pracovního postupu, který upozorní hostitele, že instance pracovního postupu přešla z běžícího stavu do stavu pozastaveno.

OnNotifyUnhandledException(Exception, Activity, String)

Volá se modulem runtime pracovního postupu pro oznamování, že v instanci pracovního postupu došlo k neošetřené výjimce.

OnRequestAbort(Exception)

Volá se modulem runtime pracovního postupu, který upozorní hostitele, že pro instanci pracovního postupu se požadovala operace přerušení.

RegisterExtensionManager(WorkflowInstanceExtensionManager)

Volá hostitel k registraci určeného Správce rozšíření, ověří, že jsou k dispozici všechna požadovaná rozšíření, a inicializuje kolekci rozšíření, která se mají použít.

ThrowIfReadOnly()

Vyvolá výjimku InvalidOperationException , pokud byla instance pracovního postupu inicializována, jak je určeno IsReadOnly .

ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Platí pro