NativeActivity, klasa bazowa
NativeActivity jest abstrakcyjną klasą z chronionym konstruktorem. Podobnie jak CodeActivity, NativeActivity jest używany do pisania zachowania imperatywnego Execute przez zaimplementowanie metody. W przeciwieństwie do CodeActivityprogramu NativeActivity ma dostęp do wszystkich uwidocznionych funkcji środowiska uruchomieniowego przepływu pracy za pośrednictwem NativeActivityContext obiektu przekazanego Execute do metody .
Korzystanie z elementu NativeActivityContext
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
NativeActivityContexttypu . Dostępne funkcje obejmują następujące elementy NativeActivityContext :
Pobieranie i ustawianie argumentów i zmiennych.
Planowanie działań podrzędnych za pomocą polecenia ScheduleActivity
Przerywanie wykonywania działań przy użyciu polecenia Abort.
Anulowanie wykonywania podrzędnego przy użyciu elementów CancelChild i CancelChildren.
Dostęp do zakładek działań przy użyciu takich metod jak CreateBookmark, RemoveBookmarki ResumeBookmark.
Niestandardowe funkcje śledzenia przy użyciu polecenia Track.
Dostęp do właściwości i właściwości wartości wykonania działania przy użyciu parametrów GetProperty i GetValue.
Planowanie akcji działań i funkcji przy użyciu metod ScheduleAction i ScheduleFunc.
Aby utworzyć działanie niestandardowe dziedziczone z elementu NativeActivity
OtwórzVisual 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, a następnie 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, NativeActivity dodając klasę bazową do deklaracji klasy.
class HelloActivity : NativeActivity
Dodaj funkcjonalność do klasy, dodając metodę Execute .
protected override void Execute(NativeActivityContext context) { Console.WriteLine("Hello World!"); }
Zastąpuj metodę CacheMetadata i wywołaj odpowiednią metodę Add, aby poinformować środowisko uruchomieniowe przepływu pracy o zmiennych, argumentach, elementach podrzędnych i delegatach działania niestandardowego. Aby uzyskać więcej informacji, zobacz klasę NativeActivityMetadata .
NativeActivityContext Użyj obiektu, aby zaplanować zakładkę. Zobacz Bookmarks , aby uzyskać szczegółowe informacje na temat tworzenia, planowania i wznawiania zakładki.
protected override void Execute(NativeActivityContext context) { // Create a Bookmark and wait for it to be resumed. context.CreateBookmark(BookmarkName.Get(context), new BookmarkCallback(OnResumeBookmark)); }