Реализованное действие политики в .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
Откройте файл решения Policy4sample.sln в среде Visual Studio 2010.
В окне Обозреватель решений щелкните правой кнопкой мыши проект ImperativeCodeClientSample и выберите команду Назначить запускаемым проектом.
Чтобы запустить проект, нажмите клавиши CTRL+F5.
Нажмите клавишу F5, чтобы запустить приложение DesignerClientSample.
Откройте файл решения Policy4sample.sln в среде Visual Studio 2010.
В окне Обозреватель решений щелкните правой кнопкой мыши проект DesignerClientSample и выберите команду Назначить запускаемым проектом.
Чтобы скомпилировать проект, нажмите клавишу F6.
Чтобы запустить проект, нажмите клавиши CTRL+F5.
Примечание |
---|
Образцы уже могут быть установлены на компьютере. Перед продолжением проверьте следующий каталог (по умолчанию).
<диск_установки>:\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
|