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


Как создать шаблон настраиваемого действия

Настраиваемые шаблоны действий служат для настройки конфигурации действий, в том числе настраиваемых составных действий, чтобы позволяет не создавать отдельно каждое действие и не настраивать все свойства и другие параметры вручную. Эти настраиваемые шаблоны можно сделать доступными на панели элементов в конструкторе рабочих процессов Windows или из повторно размещенного конструктора, из которого пользователи могут перетаскивать их в предварительно настроенную область конструктора. Конструктор рабочих процессов предоставляет хорошие примеры таких шаблонов: конструктор шаблонов SendAndReceiveReply и конструктор шаблонов ReceiveAndSendReply в категории конструкторов действий обмена сообщениями.

Первая процедура в этом разделе описывает создание пользовательского шаблона действия для действия "Задержка ", а вторая процедура описывает краткое описание того, как сделать его доступным в конструкторе рабочих процессов, чтобы убедиться, что пользовательский шаблон работает.

В шаблонах настраиваемых действий должен быть реализован интерфейс IActivityTemplateFactory. Интерфейс имеет один метод Create, с помощью которого можно создать и настроить экземпляры действий, используемые в шаблоны.

Создание шаблона для действия Delay

  1. Запустите Visual Studio 2010.

  2. В меню Файл последовательно выберите команды Создатьи Проект.

    Откроется диалоговое окно Создание проекта .

  3. В области "Типы проектов" выберите рабочий процесс из проектов Visual C# или группирования Visual Basic в зависимости от предпочтений языка.

  4. В области "Шаблоны" выберите "Библиотека действий".

  5. В поле Имя введите DelayActivityTemplate.

  6. Примите значения по умолчанию в текстовых полях "Расположение и решение" и нажмите кнопку "ОК".

  7. Щелкните правой кнопкой мыши каталог "Ссылки" проекта DelayActivityTemplate в Обозреватель решений и выберите "Добавить ссылку", чтобы открыть диалоговое окно "Добавить ссылку".

  8. Перейдите на вкладку .NET и выберите PresentationFramework в столбце "Имя компонента" слева и нажмите кнопку "ОК ", чтобы добавить ссылку на файл PresentationFramework.dll.

  9. Повторите процедуру для добавления ссылок на файлы System.Activities.Presentation.dll and the WindowsBase.dll.

  10. Щелкните правой кнопкой мыши проект DelayActivityTemplate в Обозреватель решений и выберите "Добавить" и "Создать элемент", чтобы открыть диалоговое окно "Добавить новый элемент".

  11. Выберите шаблон класса, назовите его MyDelayTemplate и нажмите кнопку "ОК".

  12. Откройте файл MyDelayTemplate.cs и добавьте следующие инструкции.

    //Namespaces added
    using System.Activities;
    using System.Activities.Statements;
    using System.Activities.Presentation;
    using System.Windows;
    
  13. Реализуйте метод 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)
    
            };
        }
    }
    
  14. Выберите "Создать решение " в меню " Сборка", чтобы создать файл DelayActivityTemplate.dll.

Обеспечение доступности шаблона в конструкторе рабочего процесса

  1. Щелкните правой кнопкой мыши решение DelayActivityTemplate в Обозреватель решений и выберите "Добавить" и "Создать проект", чтобы открыть диалоговое окно "Добавить новый проект".

  2. Выберите шаблон консольного приложения рабочего процесса, назовите его CustomActivityTemplateAppи нажмите кнопку "ОК".

  3. Щелкните правой кнопкой мыши каталог "Ссылки" проекта CustomActivityTemplateApp в Обозреватель решений и выберите "Добавить ссылку", чтобы открыть диалоговое окно "Добавить ссылку".

  4. Перейдите на вкладку "Проекты" и выберите DelayActivityTemplate в столбце "Имя проекта" слева и нажмите кнопку "ОК ", чтобы добавить ссылку на файл DelayActivityTemplate.dll, созданный в первой процедуре.

  5. Щелкните правой кнопкой мыши проект CustomActivityTemplateApp в Обозреватель решений и выберите "Сборка", чтобы скомпилировать приложение.

  6. Щелкните правой кнопкой мыши проект CustomActivityTemplateApp в Обозреватель решений и выберите "Задать в качестве запускаемого проекта".

  7. Выберите "Пуск без отладки" в меню отладки и нажмите любую клавишу, чтобы продолжить при появлении запроса в окне cmd.exe.

  8. Откройте файл Workflow1.xaml и откройте панель элементов.

  9. Найдите шаблон 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)

            };
        }
    }
}

См. также