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


Действие политики в .NET Framework 4

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

Действие Policy4 позволяет использовать объекты Windows Workflow Foundation в .NET Framework, версия 3.5 (WF 3.5) RuleSet в Windows Workflow Foundation непосредственно в .NET Framework, версия 4 (WF 4), применяя правила, установленные в WF 3.5. Используя это действие, можно создавать и выполнять наборы правил RuleSet WF 3.5. Дополнительные сведения об обработчике правил WF 3.5, являющемся частью Windows Workflow Foundation, см. в разделе «Введение в обработчик правил в Windows Workflow Foundation». Дополнительные сведения о правилах миграции на WF в .NET Framework 4 см. в разделе Руководство по миграции.

Dd797584.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\Policy4

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

Имя проекта Описание Основные файлы

Policy4

Содержит действие Policy4 и его конструктор в WF.

Policy4.cs: определение действия Policy4.

PolicyDesigner.xaml: пользовательский конструктор действия Policy4. Он использует редактор правил (RuleSetDialog Class), определенный в обработчике правил WF.

ImperativeCodeClientSample

Образец клиентского приложения, осуществляющего конфигурирование и запуск рабочего процесса при помощи приложения Policy4, использующего императивный код C# (конструктор WF не используется).

ApplyDiscount.rules: Файл с определениями правил WF.

Order.cs: Тип, представляющий заказ клиента. Правила применяются к объектам этого типа.

Program.cs: Настраивает и запускает рабочий процесс с действием Policy4 для применения правил, определенных в ApplyDiscount.rules, к экземплярам объектов Order.

App.config: файл конфигурации, содержащий путь к файлу правил.

DesignerClientSample

Образец клиентского приложения, осуществляющего конфигурирование и запуск рабочего процесса в конструкторе WF.

Sequence1.xaml: Последовательный рабочий процесс, использующий действие Policy4 для проверки правил.

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

Действие Policy4

Действие Policy4 представляет собой производный от NativeActivity класс, позволяющий рабочим процессам выполнять наборы правил WF. Следующий пример кода представляет собой упрощенное определение публичной объектной модели действия.

public class Policy4Activity<TResult>: NativeActivity<TResult>
{
    public RuleSet RuleSet

    [IsRequired]
    public InArgument Input

    public OutArgument<ValidationErrorCollection> ValidationErrors
}

Свойство Описание

RuleSet

Класс RuleSet Class WF в .NET Framework 3.5 вычисляется после выполнения действия.

TargetObject

Объект, для которого производится расчет правил в классе RuleSet Class.

ValidationError

Список ошибок проверки, возвращаемый обработчиком правил WF в .NET Framework 3.5 при проверке класса RuleSet Class целевого объекта до его выполнения.

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

Конструктор действия Policy4 добавляет возможность конфигурирования действия Policy4 без необходимости написания кода. После построения решения действие будет занесено в область элементов в раздел Microsoft.Samples.Activities.Rules.

В среде проектирования WF Designer можно конфигурировать целевой объект и набор правил. При нажатии кнопки Edit RuleSet будет выведен класс RuleSetDialog Class WF для .NET Framework 3.5. Открытие этого диалогового окна означает повторное размещение редактора правил .NET Framework 3.5. Редактор используется для создания и изменения правил, выполняемых действием Policy4.

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

Для запуска этого образца применение специальных наборов правил не требуется. Достаточно открыть решение в Visual Studio и нажать клавишу F5 для запуска приложения.

Этот образец содержит два клиентских приложения: ImperativeCodeClientSample и DesignerClientSample. Клиентское приложение ImperativeCodeClientSample показывает, как конфигурировать и запускать действие Policy40 с использованием императивного кода C#. Клиентское приложение DesignerClientSample показывает, как конфигурировать и запускать действие Policy4 с использованием конструктора.

Запуск клиентского приложения ImperativeCodeClientSample

  1. Откройте файл решения Policy4Sample.sln в среде Visual Studio 2010.

  2. В окне Обозреватель решений щелкните правой кнопкой мыши проект ImperativeCodeClientSample и выберите команду Назначить запускаемым проектом.

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

Запуск клиентского приложения ImperativeCodeClientSample

  1. Откройте файл решения Policy4Sample.sln в среде Visual Studio 2010.

  2. В окне Обозреватель решений щелкните правой кнопкой мыши проект DesignerClientSample.

    • Выберите команду Назначить запускаемым проектом.
  3. Нажмите клавишу F6, чтобы скомпилировать проект.

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