Compartir a través de


PersistenceParticipant Clase

Definición

Esta clase permite que WorkflowApplication y WorkflowServiceHost participen en el proceso de persistencia. Un participante de persistencia se deriva de la clase PersistenceParticipant o la clase PersistenceIOParticipant (clase derivada de la clase PersistenceParticipant), implementa métodos abstractos y, a continuación, agrega una instancia de la clase como una extensión de instancia de flujo de trabajo. Las clases WorkflowApplication y WorkflowServiceHost buscan esas extensiones al hacer persistir una instancia e invocar los métodos adecuados en los momentos oportunos.

public ref class PersistenceParticipant abstract
public abstract class PersistenceParticipant
type PersistenceParticipant = class
Public MustInherit Class PersistenceParticipant
Herencia
PersistenceParticipant
Derivado

Ejemplos

En el ejemplo de código siguiente se muestra cómo crear una clase que deriva de PersistenceParticipant. Este ejemplo procede del ejemplo proceso de contratación .

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

Comentarios

Un host ejecuta los siguientes pasos (o fases) al hacer persistir una instancia:

  1. Recopila los valores que se van a conservar.

  2. Asigna campos de valores monolíticos estructurados a los valores individuales.

  3. Envía el comando SaveWorkflowCommand al proveedor de persistencia.

  4. Realiza las operaciones de E/S de la transacción de persistencia.

Los hosts completan cada fase antes de comenzar la fase siguiente. Por ejemplo, al realizar la persistencia, el host recopila valores de todos los participantes de persistencia antes de pasar a la siguiente fase. En la segunda fase, el host proporciona a todos los participantes de persistencia todos los valores recopilados en la primera fase para su asignación. En la tercera fase, el host proporciona al proveedor de persistencia todos los valores recopilados en las dos fases anteriores cuando invoca el comando SaveWorkflowCommand. Por último, en la cuarta fase el host proporciona todos los valores recopilados a todos los participantes de persistencia de la transacción de E/S de persistencia.

Un host ejecuta las fases siguientes cuando carga una instancia de persistencia:

  1. Envía los comandos LoadWorkflowCommand y LoadWorkflowByInstanceKeyCommand al proveedor de persistencia.

  2. Realiza las operaciones de E/S de la transacción de persistencia.

  3. Publica los valores cargados.

En el nivel más alto, las extensiones de instancia de flujo de trabajo que se derivan de la clase PersistenceParticipant pueden participar en la primera fase (colección) y en la segunda fase (Asignación) del proceso de persistencia, y en la tercera fase (Publicación) del proceso de carga. Las extensiones de instancia de flujo de trabajo que se derivan de la clase PersistenceIOParticipant pueden participar además en la cuarta fase del proceso de persistencia y en la segunda fase del proceso de carga (E/S).

Constructores

PersistenceParticipant()

Inicializa una instancia de la clase PersistenceParticipant.

Métodos

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

Un host invoca este método en un participante de persistencia personalizado para recopilar los valores de lectura y escritura, y los valores de solo escritura, que se deben conservar.

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MapValues(IDictionary<XName,Object>, IDictionary<XName,Object>)

Un host invoca este método una vez ha terminado la recopilación de los valores en la primera fase. El host envía dos diccionarios de solo lectura con los valores que recopiló de todos los participantes de persistencia durante la primera fase (fase CollectValues) a este método para asignarlos. El host agrega los valores del diccionario devuelto por este método a la colección de valores de solo escritura.

MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
PublishValues(IDictionary<XName,Object>)

El host invoca este método y pasa todos los valores cargados en la colección InstanceData (que rellenan los comandos LoadWorkflowCommand o LoadWorkflowByInstanceKeyCommand) como un parámetro de diccionario.

ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Se aplica a