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


Реализованное действие политики в .NET Framework 4

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

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

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

Имя проекта

Описание

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

ExternalizedPolicy4

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

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

ExternalizedPolicy4Designer.xaml: пользовательский конструктор действия ExternalizedPolicy4. Он использует редактор правил (RuleSetDialog), определенный в конструкторе правил WF 3.5.

ImperativeCodeClientSample

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

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

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

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

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

DesignerClientSample

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

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

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

Действие ExternalizedPolicy4

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

public class ExternalizedPolicy4Activity<TResult>: CodeActivity
{
    public string RulesFilePath 
    
    public string RuleSetName         

    [RequiredArgument]
    public InArgument<T> TargetObject 

    [RequiredArgument]
    public OutArgument<T> ResultObject 

    public OutArgument<ValidationErrorCollection> ValidationErrors 
}

Свойство

Описание

RuleSetFilePath

Путь к файлу RuleSet в .NET Framework 3.5, который определяется при выполнении действия.

RuleSetName

Имя RuleSet, которое будет использоваться в файлах правил с расширением RULES.

TargetObject

Объект, для которого рассчитываются объекты Rule в RuleSet.

ResultObject

Результирующий объект, полученный после применения правил (например, правил, примененных к входному аргументу), с сохранением результата в результирующем аргументе.

ValidationError

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

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

Конструктор действия ExternalizedPolicy4 позволяет конфигурировать активность таким образом, чтобы использовать существующий набор правил без необходимости написания кода. Достаточно просто задать путь к файлу с расширением RULES и указать желаемое имя RuleSet. Конструктор также позволяет вносить изменения в RuleSet. После построения решения действие будет занесено в область элементов в раздел Microsoft.Samples.Activities.Rules. Конструктор позволяет выбирать файл с расширением RULES и RuleSet. При нажатии кнопки Изменить набор правил на экран будет выведено диалоговое окно WF 3.5 RuleSetDialog. Это диалоговое окно представляет собой повторно размещенный редактор правил WF 3.5, используемый для просмотра и изменения правил, выполняемых действием ExternalizedPolicy4.

Policy4 и ExternalPolicy4

Действие Действие политики в .NET Framework 4 позволяет создавать и выполнять набор правил .NET Framework 3.5 в рамках рабочего процесса WF 4. Набор правил RuleSet сериализуется в рамках определения действия Policy4 в языке XAML. Образец действия ExternalizedPolicy4 показывает, как использовать существующий внешний набор правил RuleSet (содержащийся в файле с расширением RULES).

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

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

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

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

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

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

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

Нажмите клавишу F5, чтобы запустить приложение DesignerClientSample.

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

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

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

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

Ee662962.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\ExternalizedPolicy4