Поделиться через


Базовый класс 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

  1. OpenVisual Studio 2010.

  2. Выберите "Файл", "Создать" и " Проект". Выберите рабочий процесс 4.0 в разделе Visual C# в окне "Типы проектов " и выберите узел версии 2010 . Выберите Библиотеку действий в окне "Шаблоны". Назовите новый проект HelloActivity.

  3. Щелкните правой кнопкой мыши Activity1.xaml в проекте HelloActivity и выберите "Удалить".

  4. Щелкните правой кнопкой мыши проект HelloActivity и выберите "Добавить" и " Класс". Назовите новый класс HelloActivity.cs.

  5. В файле HelloActivity.cs добавьте следующие using директивы.

    using System.Activities;
    using System.Activities.Statements;
    
  6. Сделайте новый класс наследником от NativeActivity, добавив базовый класс в объявление класса.

    class HelloActivity : NativeActivity
    
  7. Добавьте функциональные возможности в класс, добавив Execute метод.

    protected override void Execute(NativeActivityContext context)
    {
        Console.WriteLine("Hello World!");
    }
    
  8. Переопределите метод CacheMetadata и вызовите соответствующий метод Add, чтобы известить движок выполнения рабочего процесса о переменных, аргументах, дочерних элементах и делегатах пользовательской активности. Дополнительные сведения см. в NativeActivityMetadata классе.

  9. Используйте объект 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));
        }