Udostępnij za pośrednictwem


Tworzenie działań przepływu pracy przy użyciu klasy CodeActivity

Działania utworzone przez dziedziczenie z CodeActivity programu mogą implementować podstawowe zachowanie imperatywne przez zastąpienie Execute metody .

Używanie elementu CodeActivityContext

Dostęp do funkcji środowiska uruchomieniowego przepływu pracy można uzyskać z poziomu Execute metody przy użyciu elementów członkowskich parametru contextCodeActivityContexttypu . Dostępne funkcje obejmują następujące elementy CodeActivityContext :

  • Pobieranie i ustawianie wartości zmiennych i argumentów.

  • Niestandardowe funkcje śledzenia przy użyciu polecenia Track.

  • Dostęp do właściwości wykonywania działania przy użyciu polecenia GetProperty.

Aby utworzyć działanie niestandardowe dziedziczone po kodzieActivity

  1. Otwórz program Visual Studio 2010.

  2. Wybierz pozycję Plik, Nowy, a następnie Projekt. Wybierz pozycję Przepływ pracy 4.0 w obszarze Visual C# w oknie Typy projektów i wybierz węzeł v2010 . Wybierz pozycję Biblioteka działań w oknie Szablony . Nadaj nowej nazwie projekt HelloActivity.

  3. Kliknij prawym przyciskiem myszy plik Activity1.xaml w projekcie HelloActivity i wybierz polecenie Usuń.

  4. Kliknij prawym przyciskiem myszy projekt HelloActivity i wybierz polecenie Dodaj , a następnie pozycję Klasa. Nadaj nowej klasie nazwę HelloActivity.cs.

  5. W pliku HelloActivity.cs dodaj następujące using dyrektywy.

    using System.Activities;
    using System.Activities.Statements;
    
  6. Ustaw nową klasę na dziedziczenie, CodeActivity dodając klasę bazową do deklaracji klasy.

    class HelloActivity : CodeActivity
    
  7. Dodaj funkcjonalność do klasy, dodając metodę Execute .

    protected override void Execute(CodeActivityContext context)
    {
        Console.WriteLine("Hello World!");
    }
    
  8. Użyj elementu , CodeActivityContext aby utworzyć rekord śledzenia.

    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);
    }