PersistenceParticipant 类

定义

此类允许并WorkflowApplicationWorkflowServiceHost参与持久性过程。 持久性参与者派生自 PersistenceParticipant 类或 PersistenceIOParticipant 类(类的 PersistenceParticipant 派生类),实现抽象方法,然后将类的实例添加为工作流实例扩展。 保存WorkflowApplicationWorkflowServiceHost实例并在适当时间调用适当的方法时查找此类扩展。

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. 在持久性事务下执行 I/O。

主机在开始下一阶段之前完成阶段。 例如,在保留时,主机先从所有持久性参与者收集值,然后再移动到第二阶段。 在第二阶段,主机向第二阶段中的所有持久性参与者提供在第一阶段收集的所有值,以便进行映射。 在第三个阶段中,主机在调用 SaveWorkflowCommand持久性提供程序时向持久性提供程序提供第一和第二个阶段中的所有收集值。 然后在第四阶段,主机向持久性事务下的所有持久性 IO 参与者提供所有收集的值。

主机在加载持久性实例时执行以下阶段:

  1. LoadWorkflowCommand 持久性提供程序发出问题 LoadWorkflowByInstanceKeyCommand

  2. 在持久性事务下执行 I/O。

  3. 发布加载的值。

在最高级别,派生自该类的 PersistenceParticipant 工作流实例扩展可以参与持久化进程的第一个(Collect)和第二阶段(映射)阶段(发布)加载过程。 派生自 PersistenceIOParticipant 类的工作流实例扩展还可以参与持久化过程的第四阶段和加载过程的第二阶段(I/O)。

构造函数

名称 说明
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 加载值(由 LoadWorkflowCommandLoadWorkflowByInstanceKeyCommand填充)作为字典参数传递。

ToString()

返回一个表示当前对象的字符串。

(继承自 Object)

适用于