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.
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: