Ожидание входного действия

Данный раздел относится к версии Windows Workflow Foundation 4.

В этом образце показывается создание именованных закладок в рабочем процессе. В Windows Workflow Foundation (WF) нет действия для декларативного создания закладок. В связи с этим, когда необходимо создать закладку в рабочем процессе, необходимо написать пользовательское действие, которое ее создаст. Действие WaitForInput, определенное в этом образце, предоставляет эти функциональные возможности. С его помощью пользователи могут создавать в рабочем процессе закладки декларативным образом.

Проекты в этом образце

Имя проекта

Описание

Основные файлы

WaitForInput

Содержит действие WaitForInput и его конструктор

WaitForInput.cs

Определение действия WaitForInput.

WaitForInputDesigner.xaml

Пользовательский конструктор для действия WaitForInput.

TypeToFirstGenericArgumentConverter.cs

Преобразователь типа WPF, используемый для обновления универсального типа действия в конструкторе.

WaitForInputTestClient

Образец клиентского приложения, настраивающего и запускающего рабочий процесс с помощью нескольких действий WaitForInput в конструкторе рабочих процессов.

Sequence1.xaml

Последовательный рабочий процесс, использующий действие WaitForInput.

Program.cs

Выполняет экземпляр рабочего процесса, определенного в Sequence1.xaml.

Действие WaitForInput

Действие WaitForInput создает именованную закладку в рабочем процессе. Закладка ждет сигнала и получает данные заданного ей типа. После продолжения закладки данные, переданные рабочему процессу, доступны через свойство Result.

Действие WaitForInput является производным от класса NativeActivity, поскольку оно должно создавать закладки, доступные только через класс NativeActivityContext.

Действие имеет три атрибута, применяющиеся к нему для привязки конструктора, для добавления функции общего аргумента, которая может быть обновлена, и для задания общего типа по умолчанию для строки. Действие также имеет аргументы, перечисленные в следующей таблице.

Имя

Тип

Описание

TResult

Общий аргумент (TResult)

Тип закладки. Это тип данных, которые должны быть переданы закладке при продолжении.

BookmarkName

InArgument<string>

Имя закладки.

Result

InArgument<TResult>

Данные, передаваемые действию при продолжении с закладки.

Конструктор действия WaitForInput

Конструктор действий WaitForInput реализован в файле WaitForInputDesigner.xaml. Действие WaitForInput и его конструктор включены в одну сборку. На следующем рисунке показано действие WaitForInput на панели элементов в категории с таким же именем, как у сборки.

Снимок экрана области элементов WaitForInput

На следующем рисунке показан конструктор WaitForInput. Поскольку действие WaitForInput является очень простым, конструктор позволяет задавать все аргументы напрямую в области конструктора.

Конструктор действий WaitForInput

Использование этого образца

  1. Откройте файл WaitForInput.sln в среде Visual Studio 2010.

  2. Чтобы построить решение, нажмите клавишу F6.

  3. Чтобы запустить образец без отладки, нажмите сочетание клавиш CTRL+F5.

Ee620806.Important(ru-ru,VS.100).gif Примечание
Образцы уже могут быть установлены на компьютере. Перед продолжением проверьте следующий каталог (по умолчанию).

<диск_установки>:\WF_WCF_Samples

Если этот каталог не существует, перейдите на страницу Образцы Windows Communication Foundation (WCF) и Windows Workflow Foundation (WF) для .NET Framework 4, чтобы загрузить все образцы Windows Communication Foundation (WCF) и WF. Этот образец расположен в следующем каталоге.

<диск_установки>:\WF_WCF_Samples\WF\Scenario\ActivityLibrary\WaitForInput