Как создать шаблон настраиваемого действия
Настраиваемые шаблоны действий служат для настройки конфигурации действий, в том числе настраиваемых составных действий, чтобы позволяет не создавать отдельно каждое действие и не настраивать все свойства и другие параметры вручную. Эти настраиваемые шаблоны можно сделать доступными на панели элементов в конструкторе рабочих процессов Windows или из повторно размещенного конструктора, из которого пользователи могут перетаскивать их в предварительно настроенную область конструктора. Конструктор рабочих процессов предоставляет хорошие примеры таких шаблонов: конструктор шаблонов SendAndReceiveReply и конструктор шаблонов ReceiveAndSendReply в категории конструкторов действий обмена сообщениями.
Первая процедура в этом разделе описывает создание пользовательского шаблона действия для действия "Задержка ", а вторая процедура описывает краткое описание того, как сделать его доступным в конструкторе рабочих процессов, чтобы убедиться, что пользовательский шаблон работает.
В шаблонах настраиваемых действий должен быть реализован интерфейс IActivityTemplateFactory. Интерфейс имеет один метод Create, с помощью которого можно создать и настроить экземпляры действий, используемые в шаблоны.
Создание шаблона для действия Delay
Запустите Visual Studio 2010.
В меню Файл последовательно выберите команды Создатьи Проект.
Откроется диалоговое окно Создание проекта .
В области "Типы проектов" выберите рабочий процесс из проектов Visual C# или группирования Visual Basic в зависимости от предпочтений языка.
В области "Шаблоны" выберите "Библиотека действий".
В поле Имя введите
DelayActivityTemplate
.Примите значения по умолчанию в текстовых полях "Расположение и решение" и нажмите кнопку "ОК".
Щелкните правой кнопкой мыши каталог "Ссылки" проекта DelayActivityTemplate в Обозреватель решений и выберите "Добавить ссылку", чтобы открыть диалоговое окно "Добавить ссылку".
Перейдите на вкладку .NET и выберите PresentationFramework в столбце "Имя компонента" слева и нажмите кнопку "ОК ", чтобы добавить ссылку на файл PresentationFramework.dll.
Повторите процедуру для добавления ссылок на файлы System.Activities.Presentation.dll and the WindowsBase.dll.
Щелкните правой кнопкой мыши проект DelayActivityTemplate в Обозреватель решений и выберите "Добавить" и "Создать элемент", чтобы открыть диалоговое окно "Добавить новый элемент".
Выберите шаблон класса, назовите его MyDelayTemplate и нажмите кнопку "ОК".
Откройте файл MyDelayTemplate.cs и добавьте следующие инструкции.
//Namespaces added using System.Activities; using System.Activities.Statements; using System.Activities.Presentation; using System.Windows;
Реализуйте метод IActivityTemplateFactory с помощью класса
MyDelayActivity
со следующим кодом. Это настраивает задержку на длительность 10 секунд.public sealed class MyDelayActivity : IActivityTemplateFactory { public Activity Create(System.Windows.DependencyObject target) { return new System.Activities.Statements.Delay { DisplayName = "DelayActivityTemplate", Duration = new TimeSpan(0, 0, 10) }; } }
Выберите "Создать решение " в меню " Сборка", чтобы создать файл DelayActivityTemplate.dll.
Обеспечение доступности шаблона в конструкторе рабочего процесса
Щелкните правой кнопкой мыши решение DelayActivityTemplate в Обозреватель решений и выберите "Добавить" и "Создать проект", чтобы открыть диалоговое окно "Добавить новый проект".
Выберите шаблон консольного приложения рабочего процесса, назовите его
CustomActivityTemplateApp
и нажмите кнопку "ОК".Щелкните правой кнопкой мыши каталог "Ссылки" проекта CustomActivityTemplateApp в Обозреватель решений и выберите "Добавить ссылку", чтобы открыть диалоговое окно "Добавить ссылку".
Перейдите на вкладку "Проекты" и выберите DelayActivityTemplate в столбце "Имя проекта" слева и нажмите кнопку "ОК ", чтобы добавить ссылку на файл DelayActivityTemplate.dll, созданный в первой процедуре.
Щелкните правой кнопкой мыши проект CustomActivityTemplateApp в Обозреватель решений и выберите "Сборка", чтобы скомпилировать приложение.
Щелкните правой кнопкой мыши проект CustomActivityTemplateApp в Обозреватель решений и выберите "Задать в качестве запускаемого проекта".
Выберите "Пуск без отладки" в меню отладки и нажмите любую клавишу, чтобы продолжить при появлении запроса в окне cmd.exe.
Откройте файл Workflow1.xaml и откройте панель элементов.
Найдите шаблон MyDelayActivity в категории DelayActivityTemplate. Перетащите его в область конструктора. Убедитесь в окне "Свойства" , что
Duration
для свойства задано значение 10 секунд.
Пример
Теперь файл MyDelayActivity.cs должен содержать следующий код.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
//Namespaces added
using System.Activities;
using System.Activities.Statements;
using System.Activities.Presentation;
using System.Windows;
namespace DelayActivityTemplate
{
public sealed class MyDelayActivity : IActivityTemplateFactory
{
public Activity Create(System.Windows.DependencyObject target)
{
return new System.Activities.Statements.Delay
{
DisplayName = "DelayActivityTemplate",
Duration = new TimeSpan(0, 0, 10)
};
}
}
}