PersistenceParticipant 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
此类允许 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)
{
}
注解
宿主在保留实例时执行以下步骤(或阶段):
收集要保留的值。
将整体结构化类的字段映射到单独的值。
向持久性提供程序发出 SaveWorkflowCommand。
在持久性事务下执行 I/O。
宿主将完成一个阶段,之后再开始下一个阶段。 例如,在保留时,宿主将从所有持久性参与者处收集值,之后再转移到第二个阶段。 在第二个阶段中,宿主会将第一个阶段中收集的所有值提供给第二个阶段中的所有持久性参与者进行映射。 在第三个阶段中,宿主会在调用 SaveWorkflowCommand 时将第一个和第二个阶段中收集的所有值提供给持久性提供程序。 然后,在第四个阶段中,宿主会在持久性事务下将所有收集的值提供给所有持久性 IO 参与者。
宿主在加载持久性实例时将执行以下阶段:
向持久性提供程序发出 LoadWorkflowCommand 和 LoadWorkflowByInstanceKeyCommand。
在持久性事务下执行 I/O。
发布加载的值。
在最高级别,派生自 PersistenceParticipant 类的工作流实例扩展可以参与保留过程的第一个阶段(收集)和第二个阶段(映射),以及加载过程的第三个阶段(发布)。 派生自 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 集合中所有加载的值(由 LoadWorkflowCommand 或 LoadWorkflowByInstanceKeyCommand 填充)作为字典参数。 |
ToString() |
返回表示当前对象的字符串。 (继承自 Object) |