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


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

  1. Nyissa meg a Visual Studio 2010-et.

  2. 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.

  3. Kattintson a jobb gombbal a Activity1.xaml elemre a HelloActivity projektben, és válassza a Törlés lehetőséget.

  4. 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.

  5. A HelloActivity.cs fájlban adja hozzá a következő using irányelveket.

    using System.Activities;
    using System.Activities.Statements;
    
  6. Az új osztály örökléséhez CodeActivity adjon hozzá egy alaposztályt az osztálydeklarációhoz.

    class HelloActivity : CodeActivity
    
  7. 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!");
    }
    
  8. 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);
    }