Munkafolyamat-tevékenység létrehozása a CodeActivity osztály használatával
Az öröklődéssel CodeActivity létrehozott tevékenységek alapvető imperatív viselkedést valósíthatnak meg a Execute módszer felülbírálásával.
A CodeActivityContext használata
A munkafolyamat-futtatókörnyezet funkciói a Execute metóduson belülről érhetők el a context
paraméter típusának CodeActivityContexttagjaival. Az elérhető CodeActivityContext funkciók közé tartoznak a következők:
Változók és argumentumok értékeinek lekérése és beállítása.
Egyéni nyomkövetési funkciók a .Track
Hozzáférés a tevékenység végrehajtási tulajdonságaihoz a következő használatával GetProperty: .
A CodeActivity-ből öröklő egyéni tevékenység létrehozása
Nyissa meg a Visual Studio 2010-et.
Válassza a Fájl, az Új, majd a Project lehetőséget. A Projekttípusok ablakban válassza a Visual C# alatt a Munkafolyamat 4.0 lehetőséget, majd válassza ki a v2010 csomópontot. Válassza a Tevékenységtár lehetőséget a Sablonok ablakban. Nevezze el az új projektet HelloActivity néven.
Kattintson a jobb gombbal a Activity1.xaml elemre a HelloActivity projektben, és válassza a Törlés lehetőséget.
Kattintson a jobb gombbal a HelloActivity projektre, és válassza a Hozzáadás , majd az Osztály lehetőséget. Nevezze el az új osztályt HelloActivity.cs.
A HelloActivity.cs fájlban adja hozzá a következő
using
irányelveket.using System.Activities; using System.Activities.Statements;
Az új osztály örökléséhez CodeActivity adjon hozzá egy alaposztályt az osztálydeklarációhoz.
class HelloActivity : CodeActivity
Adjon hozzá funkciókat az osztályhoz egy Execute metódus hozzáadásával.
protected override void Execute(CodeActivityContext context) { Console.WriteLine("Hello World!"); }
CodeActivityContext A használatával hozzon létre egy nyomkövetési rekordot.
protected override void Execute(CodeActivityContext context) { Console.WriteLine("Hello World!"); CustomTrackingRecord record = new CustomTrackingRecord("MyRecord"); record.Data.Add(new KeyValuePair<String, Object>("ExecutionTime", DateTime.Now)); context.Track(record); }