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 context
CodeActivityContexttypu . 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
Otwórz program Visual Studio 2010.
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.
Kliknij prawym przyciskiem myszy plik Activity1.xaml w projekcie HelloActivity i wybierz polecenie Usuń.
Kliknij prawym przyciskiem myszy projekt HelloActivity i wybierz polecenie Dodaj , a następnie pozycję Klasa. Nadaj nowej klasie nazwę HelloActivity.cs.
W pliku HelloActivity.cs dodaj następujące
using
dyrektywy.using System.Activities; using System.Activities.Statements;
Ustaw nową klasę na dziedziczenie, CodeActivity dodając klasę bazową do deklaracji klasy.
class HelloActivity : CodeActivity
Dodaj funkcjonalność do klasy, dodając metodę Execute .
protected override void Execute(CodeActivityContext context) { Console.WriteLine("Hello World!"); }
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); }