Megosztás a következőn keresztül:


Tevékenységszerzői beállítások a WF-ben

.NET-keretrendszer 4.6.1 számos lehetőséget kínál az egyéni tevékenységek létrehozására. Egy adott tevékenység létrehozásához a megfelelő módszer attól függ, hogy milyen futásidejű funkciókra van szükség.

Annak eldöntése, hogy melyik alaptevékenység-osztályt kell használni egyéni tevékenységek létrehozásához

Az alábbi táblázat az egyéni tevékenységalaposztályokban elérhető funkciókat sorolja fel.

Alaptevékenység-osztály Elérhető funkciók
Activity Rendszer által biztosított és egyéni tevékenységek csoportjait összetett tevékenységgé alakítja.
CodeActivity Imperatív funkciókat valósít meg egy Execute felülírható metódus megadásával. Emellett hozzáférést biztosít a nyomkövetéshez, a változókhoz és az argumentumokhoz.
NativeActivity A szolgáltatás összes funkcióját CodeActivitybiztosítja, valamint a tevékenységek végrehajtásának megszakítását, a gyermektevékenységek végrehajtásának megszakítását, a könyvjelzők használatát, valamint a tevékenységek, tevékenységműveletek és függvények ütemezését.
DynamicActivity DOM-szerű megközelítést biztosít olyan tevékenységek létrehozásához, amelyek a WF-tervezővel és a futásidejű gépekkel működnek együtt ICustomTypeDescriptor, így új tevékenységek hozhatók létre új típusok definiálása nélkül.

Tevékenységek létrehozása tevékenységgel

Olyan tevékenységek, amelyek más meglévő tevékenységek összeállításával nyernek Activity ki összeállítási funkciókat. Ezek a tevékenységek lehetnek meglévő egyéni tevékenységek és tevékenységek a .NET-keretrendszer 4.6.1 tevékenységkódtárból. Ezeknek a tevékenységeknek a összeállítása az egyéni funkciók létrehozásának legalapvetőbb módja. Ezt a módszert általában akkor használják, ha vizuális tervezési környezetet használnak munkafolyamatok létrehozásához.

Tevékenységek létrehozása a CodeActivity vagy az AsyncCodeActivity használatával

Azok a tevékenységek, amelyek imperatív funkciókból CodeActivity származnak vagy AsyncCodeActivity implementálhatók, felül kell bírálni a Execute metódust egyéni imperatív kóddal. Az egyéni kód akkor lesz végrehajtva, ha a tevékenységet a futtatókörnyezet hajtja végre. Bár az így létrehozott tevékenységek egyéni funkciókhoz férnek hozzá, nem rendelkeznek hozzáféréssel a futtatókörnyezet összes funkciójához, például a végrehajtási környezethez való teljes hozzáféréshez, a gyermektevékenységek ütemezéséhez, a könyvjelzők létrehozásához vagy a Mégse vagy a Megszakítás metódus támogatásához. CodeActivity A végrehajtáskor hozzáféréssel rendelkezik a végrehajtási környezet csökkentett verziójához (a vagy AsyncCodeActivityContext osztályon CodeActivityContext keresztül). A használatával CodeActivity létrehozott tevékenységek hozzáférhetnek az argumentumokhoz és a változófeloldáshoz, a bővítményekhez és a nyomkövetéshez. Az aszinkron tevékenységütemezés a használatával AsyncCodeActivityvégezhető el.

Tevékenységek létrehozása a NativeActivity használatával

Azok a tevékenységek, amelyek a parancsból NativeActivityCodeActivityszármaznak, a felülírásával Executeimperatív funkciókat hoznak létre, de a metódusba Execute átadott munkafolyamat-futtatókörnyezet NativeActivityContext összes funkciójához hozzáféréssel is rendelkeznek. Ez a környezet támogatja a gyermektevékenységek ütemezését és megszakítását, a végrehajtást ActivityAction és ActivityFunc<TResult> az objektumokat, a tranzakciók munkafolyamatba való áramlását, az aszinkron folyamatok meghívását, a végrehajtás megszakítását és megszakítását, a végrehajtási tulajdonságokhoz és bővítményekhez való hozzáférést, valamint a könyvjelzőket (a szüneteltetett munkafolyamatok folytatására szolgáló kezelőket).

Tevékenységek létrehozása a DynamicActivity használatával

A másik három tevékenységtípustól eltérően az új funkciók nem úgy jönnek létre, hogy új típusokat származtatnak (DynamicActivityaz osztály le van zárva), hanem úgy, hogy a és Implementation a tulajdonságába egy tevékenységdokumentum-objektummodell (DOM) használatával állítják össze a Properties funkciókat.

Találatot visszaadó szerzői tevékenységek

Számos tevékenységnek eredményül kell adnia a végrehajtás után. Bár erre a célra mindig lehet egyénit OutArgument<T> definiálni egy tevékenységhez, javasoljuk, hogy használja Activity<TResult>helyette a , vagy a származtatásátNativeActivity<TResult>CodeActivity<TResult>. Ezen alaposztályok mindegyike rendelkezik egy OutArgument<T> Result nevű értékkel, amelyet a tevékenység a visszatérési értékéhez használhat. Az eredményt vissza adó tevékenységeket csak akkor szabad használni, ha csak egy eredményt kell visszaadni egy tevékenységből; ha több eredményt kell visszaadni, OutArgument<T> külön tagokat kell használni.