Базовый класс NativeActivity
NativeActivity является абстрактным классом с защищенным конструктором. Подобно CodeActivity, NativeActivity используется для записи принудительного поведения посредством реализации метода Execute. В отличие от CodeActivity, NativeActivity имеет доступ ко всем предоставляемым функциональным возможностям среды выполнения рабочего процесса с помощью объекта NativeActivityContext, передаваемого методу Execute.
Использование NativeActivityContext
Доступ к функциям среды выполнения рабочего процесса можно получить из метода Execute при помощи элементов параметра context
типа NativeActivityContext. Функции, доступные посредством NativeActivityContext:
Возвращение и задание аргументов и переменных.
Планирование дочерних действий с помощью ScheduleActivity
Прерывание выполнения действия с помощью Abort.
Отмена выполнения дочернего действия с помощью CancelChild и CancelChildren.
Получение доступа к закладкам действий при помощи таких методов, как CreateBookmark, RemoveBookmark и ResumeBookmark.
Пользовательские функции отслеживания с использованием Track.
Получение доступа к свойствам выполнения действия и свойствам значений с помощью GetProperty и GetValue.
Планирование задач и функций действий с помощью ScheduleAction и ScheduleFunc.
Создание пользовательского действия, которое наследуется от NativeActivity
OpenVisual Studio 2010.
Выберите "Файл", "Создать" и " Проект". Выберите рабочий процесс 4.0 в разделе Visual C# в окне "Типы проектов " и выберите узел версии 2010 . Выберите библиотекудействий в окне "Шаблоны ". Задайте имя для нового проекта HelloActivity.
Щелкните правой кнопкой мыши Activity1.xaml в проекте HelloActivity и выберите "Удалить".
Щелкните правой кнопкой мыши проект HelloActivity и выберите "Добавить" и " Класс". Задайте имя для нового класса HelloActivity.cs.
В файле HelloActivity.cs добавьте следующие директивы
using
.using System.Activities; using System.Activities.Statements;
Сделайте так, чтобы новый класс наследовал от действия NativeActivity путем добавления базового класса к объявлению класса.
class HelloActivity : NativeActivity
Добавьте функциональные возможности к классу путем добавления метода Execute.
protected override void Execute(NativeActivityContext context) { Console.WriteLine("Hello World!"); }
Переопределите метод CacheMetadata и вызовите соответствующий метод Add, чтобы сообщить среде выполнения рабочего процесса о переменных, аргументах, дочерних элементах и делегатах пользовательского действия. Дополнительные сведения см. в описании класса NativeActivityMetadata.
Для планирования закладок используйте объект NativeActivityContext. Подробные сведения о том, как создавать, планировать и возобновлять закладки, см. в разделе Bookmarks.
protected override void Execute(NativeActivityContext context) { // Create a Bookmark and wait for it to be resumed. context.CreateBookmark(BookmarkName.Get(context), new BookmarkCallback(OnResumeBookmark)); }