Действие NoPersistScope
Данный раздел относится к версии Windows Workflow Foundation 4.
В этом образце показано, как обрабатывать несериализуемое и высвобождаемое состояние в рабочем процессе. Важно заметить, что попыток сохранения несериализуемого состояния в рабочих процессах не происходит. Кроме того, необходимо очищать высвобождаемые объекты после их использования в рабочем процессе.
Демонстрации
Настраиваемое действие NoPersistScope
и его конструктор.
Использование действия NoPersistZone
При запуске данного образца рабочего процесса пользовательское действие CreateTextWriter
создает объект типа TextWriter и сохраняет его в переменной рабочего процесса. TextWriter является объектом типа IDisposable. Данный модуль записи TextWriter, настроенный на запись в файл "out.txt" в директории, из которой запущен образец, используется действием WriteLine, когда оно копирует какой-либо текст, вводимый с консоли.
Логика копирования действует в рамках действия NoPersistScope
(код для которого также является частью данного образца), что препятствует сохранению рабочего процесса. Если ввести с консоли команду unload, узел попытается сохранить экземпляр рабочего процесса, но срок ожидания этой операции истекает, поскольку рабочий процесс остается в области NoPersistScope
. Рабочий процесс также применяет настраиваемое действие под названием Dispose
, чтобы удалить объект TextWriter, когда он больше не нужен. Действие Dispose
помещается в блоке Finally действия TryCatch, в котором объявляется переменная TextWriter, чтобы гарантировать ее запуск даже при формировании исключения в ходе работы блока Try.
Чтобы завершить работу экземпляра рабочего процесса и закрыть программу, можно ввести команду exit.
Выполнение образца
Откройте решение NoPersistZone.sln в Visual Studio 2010.
Чтобы построить решение, нажмите клавишу F6 или выберите команду Построить решение в меню Построение.
Успешно построив решение, нажмите клавишу F5 или выберите из меню Отладка пункт Начать отладку. Чтобы запустить решение без отладки, нажмите сочетание клавиш CTRL+F5 или выберите из меню Отладка пункт Запуск без отладки.
Очистка (необязательно)
- Для удаления хранилища экземпляров SQL запустите команду Cleanup.cmd.
Примечание |
---|
Образцы уже могут быть установлены на компьютере. Перед продолжением проверьте следующий каталог (по умолчанию).
<диск_установки>:\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\NoPersistScope
|