Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Arbetsflödesutveckling i .NET Framework 4.6.1 använder begrepp som kan vara nya för vissa utvecklare. I det här avsnittet beskrivs några av begreppen och hur de implementeras.
Arbetsflöden och aktiviteter
Ett arbetsflöde är en strukturerad samling åtgärder som modellerar en process. Varje åtgärd i arbetsflödet modelleras som en aktivitet. En värd interagerar med ett arbetsflöde med hjälp WorkflowInvoker av för att anropa ett arbetsflöde som om det vore en metod, WorkflowApplication för explicit kontroll över körningen av en enskild arbetsflödesinstans och WorkflowServiceHost för meddelandebaserade interaktioner i scenarier med flera instanser. Eftersom steg i arbetsflödet definieras som en hierarki med aktiviteter kan den översta aktiviteten i hierarkin sägas definiera själva arbetsflödet. Den här hierarkimodellen tar plats för de explicita SequentialWorkflow klasserna och StateMachineWorkflow klasserna från tidigare versioner. Själva aktiviteterna utvecklas som samlingar av andra aktiviteter (med Activity klassen som bas, vanligtvis definierad med hjälp av XAML), eller anpassade genom att använda CodeActivity klassen, som kan använda körningen för dataåtkomst, eller genom att använda NativeActivity klassen, som exponerar bredden av arbetsflödeskörningen för aktivitetsförfattaren. Aktiviteter som utvecklas med hjälp av CodeActivity och NativeActivity skapas med CLR-kompatibla språk, till exempel C#.
Aktivitetsdatamodell
Aktiviteter lagrar och delar data med hjälp av de typer som visas i följande tabell.
| Typ | Beskrivning |
|---|---|
| Variabel | Lagrar data i en aktivitet. |
| Argumentation | Flyttar data till och från en aktivitet. |
| Uttryck | En aktivitet med ett förhöjt returvärde som används i argumentbindningar. |
Arbetsflödesmiljö
Arbetsflödesmiljön är den miljö där arbetsflöden körs. WorkflowInvoker är det enklaste sättet att köra ett arbetsflöde. Värden använder WorkflowInvoker för följande:
Anropa ett arbetsflöde synkront.
Ange indata till eller hämta utdata från ett arbetsflöde.
Så här lägger du till tillägg som ska användas av aktiviteter.
ActivityInstance är den trådsäkra proxy som värdar kan använda för att interagera med runtime. Värden använder ActivityInstance för följande:
Hämta en instans genom att skapa den eller läsa in den från ett instansarkiv.
Meddelas om instansens livscykelhändelser.
För att styra arbetsflödets körning.
Ange indata till eller hämta utdata från ett arbetsflöde.
För att signalera en arbetsflödesfortsättning och skicka värden till arbetsflödet.
Spara arbetsflödesdata.
Så här lägger du till tillägg som ska användas av aktiviteter.
Aktiviteter får åtkomst till arbetsflödets körningsmiljö med hjälp av lämplig ActivityContext härledd klass, till exempel NativeActivityContext eller CodeActivityContext. De använder detta för att lösa tvister och variabler, för att schemalägga barnaktiviteter och för många andra syften.
Tjänster
Arbetsflöden är ett naturligt sätt att implementera och komma åt löst kopplade tjänster med hjälp av meddelandeaktiviteter. Meddelandeaktiviteter bygger på WCF och är den primära mekanismen som används för att hämta data till och från ett arbetsflöde. Du kan skapa meddelandeaktiviteter tillsammans för att modellera alla typer av mönster för meddelandeutbyte som du vill. Mer information finns i Meddelandeaktiviteter. Arbetsflödestjänster hanteras med hjälp av WorkflowServiceHost klassen . Mer information finns i Översikt över arbetsflödestjänster. Mer information om arbetsflödestjänster finns i Arbetsflödestjänster
Beständighet, avlastning och Long-Running arbetsflöden
Windows Workflow förenklar redigeringen av långvariga reaktiva program genom att tillhandahålla:
Aktiviteter som har åtkomst till externa indata.
Möjligheten att skapa Bookmark objekt som kan återupptas av en värdlyssnare.
Möjligheten att bevara ett arbetsflödes data och lasta ur arbetsflödet och sedan läsa in och återaktivera arbetsflödet som svar på att Bookmark-objekt i ett visst arbetsflöde återupptas.
Ett arbetsflöde kör kontinuerligt aktiviteter tills det inte finns några fler aktiviteter att köra eller tills alla aktiviteter som körs för närvarande väntar på indata. I det senare tillståndet är arbetsflödet inaktivt. Det är vanligt att en värd tar bort arbetsflöden som har gått inaktiva och läser in dem igen för att fortsätta körningen när ett meddelande kommer. WorkflowServiceHost tillhandahåller denna funktion och erbjuder en utökningsbar avlastningspolicy. För körningsblock som använder flyktiga tillståndsdata eller andra data som inte kan bevaras kan en aktivitet signalera till en värd att den inte bör bevaras med hjälp av NoPersistHandle. Ett arbetsflöde kan också uttryckligen spara sina data till ett varaktigt lagringsmedium med hjälp Persist av aktiviteten.