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


Типы ограничений

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

Этот образец демонстрирует два способа применения ограничений к рабочему процессу, один из которых применяется изнутри действия (сборка), а второй — снаружи действия (политика). В этом сценарии создатель действия (представитель сторонней компании-разработчика программного обеспечения) желает проверить соотношение между двумя аргументами. В этом случае стоимость не должна превышать цену. Это является общим проверочным ограничением для сборки.

Затем владелец магазина желает добавить к этому общему действию ряд других проверок. Допустим, он желает, чтобы большая часть его продуктов имела стоимость 9,99 долларов или менее. Для этого он использует ограничение политики, являющееся надстройкой над действием CreateProduct.

В данном образце:

Создатель действия (сборка) должен:

  • Создайте ограничение (PriceGreaterThanCost). Здесь размещается вся логика проверки.

  • Переопределите OnGetConstraints и добавьте ограничение (PriceGreaterThanCost) в список ограничений IList.

Создатель рабочего процесса (политика) должен:

  • Создайте рабочий процесс с экземпляром действия для проверки (CreateProduct).

  • Создайте ограничение (MaxPrice).

  • Создать экземпляр ValidatorSettings (validatorSettings) и добавить ограничение (MaxPrice) к коллекции AdditionalConstraints. В этом случае создатель рабочего процесса может добавить ограничения политики к любому действию, например, к последовательному или параллельному.

  • Вызвать метод Validate, возвращающий коллекцию ValidationResults объектов ConstraintViolation.

  • Напечатайте объекты ConstraintViolation (необязательно).

Настройка, построение и выполнение образца

  1. Откройте образец решения ConstraintTypes.sln в среде Visual Studio 2010.

  2. Постройте и запустите решение.

Dd759025.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\Validation\ConstraintLibrary