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


PersistenceParticipant Класс

Определение

Этот класс позволяет использовать объекты WorkflowApplication и WorkflowServiceHost в процессе сохранения. Участник сохраняемости, являющийся производным от класса PersistenceParticipant или класса PersistenceIOParticipant (производный класс от класса PersistenceParticipant), реализует абстрактные методы, а затем добавляет экземпляр класса как расширение экземпляра рабочего процесса. Объекты WorkflowApplication и WorkflowServiceHost выполняют поиск таких расширений при сохранении экземпляра и в соответствующее время вызывают соответствующие методы.

public ref class PersistenceParticipant abstract
public abstract class PersistenceParticipant
type PersistenceParticipant = class
Public MustInherit Class PersistenceParticipant
Наследование
PersistenceParticipant
Производный

Примеры

В следующем образце кода показано создание класса, производного от PersistenceParticipant. Этот пример из примера "Процесс найма ".

public class HiringRequestInfoPersistenceParticipant: PersistenceIOParticipant
{
    public HiringRequestInfoPersistenceParticipant()
        : base(true, false)
    {
    }

Комментарии

Узел выполняет следующие шаги (или этапы) при сохранении экземпляра.

  1. Собирает сохраняемые значения.

  2. Сопоставляет поля монолитно структурированных значений отдельным значениям.

  3. Выдает команду SaveWorkflowCommand поставщику сохраняемости.

  4. Выполняет ввод-вывод в ходе транзакции сохраняемости.

Узел завершает этап перед началом следующего этапа. Например, при постоянном хранении, узел собирает значения от всех участников сохраняемости перед переходом ко второму этапу. На втором этапе узел предоставляет все собранные на первом этапе значения всем участникам сохраняемости на втором этапе для сопоставления. На третьем этапе узел предоставляет все собранные на первом и втором этапах значения поставщику сохраняемости при вызове SaveWorkflowCommand. Затем на четвертом этапе узел предоставляет все собранные значения всем участникам ввода-вывода сохраняемости в транзакции сохраняемости.

Узел выполняет следующие этапы при загрузке экземпляра сохраняемости.

  1. Выдает команды LoadWorkflowCommand и LoadWorkflowByInstanceKeyCommand поставщику сохраняемости.

  2. Выполняет ввод-вывод в ходе транзакции сохраняемости.

  3. Публикует загруженные значения.

На самом высоком уровне расширения экземпляра рабочего процесса, производные от класса PersistenceParticipant, могут участвовать в первом (сбор) и втором (сопоставление) этапах процесса сохранения, и третьем этапе (публикация) процесса загрузки. Расширения экземпляра рабочего процесса, производные от класса PersistenceIOParticipant, могут дополнительно участвовать в четвертом этапе процесса сохранения и втором этапе процесса загрузки (ввод-вывод).

Конструкторы

PersistenceParticipant()

Инициализирует экземпляр класса PersistenceParticipant.

Методы

CollectValues(IDictionary<XName,Object>, IDictionary<XName,Object>)

Узел вызывает этот метод для нестандартного участника сохраняемости, собирающего значения, доступные для чтения и записи, и значения, доступные только на запись, которые необходимо сохранить.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
MapValues(IDictionary<XName,Object>, IDictionary<XName,Object>)

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

MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
PublishValues(IDictionary<XName,Object>)

Узел вызывает этот метод и передает все загруженные значения из коллекции InstanceData (заполненной LoadWorkflowCommand или LoadWorkflowByInstanceKeyCommand) в качестве параметра словаря.

ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Применяется к