Condividi tramite


PersistenceParticipant Classe

Definizione

Questa classe consente sia a WorkflowApplication che a WorkflowServiceHost di partecipare al processo di persistenza. Un partecipante di persistenza deriva dalla classe PersistenceParticipant o dalla classe PersistenceIOParticipant (classe derivata della classe PersistenceParticipant), implementa i metodi astratti, quindi aggiunge un'istanza della classe come estensione all'istanza del flusso di lavoro. WorkflowApplication e WorkflowServiceHost cercano tali estensioni quando si rende persistente un'istanza e si richiamano i metodi appropriati in momenti appropriati.

public ref class PersistenceParticipant abstract
public abstract class PersistenceParticipant
type PersistenceParticipant = class
Public MustInherit Class PersistenceParticipant
Ereditarietà
PersistenceParticipant
Derivato

Esempio

Nell'esempio di codice seguente viene mostrata la creazione di una classe derivata dall'oggetto PersistenceParticipant. Questo esempio proviene dall'esempio processo di assunzione .

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

Commenti

Un host esegue i passaggi (o fasi) seguenti durante l'impostazione della persistenza di un'istanza:

  1. Raccoglie i valori da rendere persistenti.

  2. Esegue il mapping di campi di valori strutturati monolitici a singoli valori.

  3. Rilascia SaveWorkflowCommand per il provider di persistenza.

  4. Esegue I/O nella transazione di persistenza.

Un host completa una fase prima di iniziare quella successiva. Durante l'impostazione della persistenza, ad esempio, l'host raccoglie valori da tutti i partecipanti di persistenza prima di passare alla seconda fase. Nella seconda fase, l'host fornisce tutti i valori raccolti nella prima fase a tutti i partecipanti di persistenza nella seconda fase per il mapping. Nella terza fase, l'host fornisce tutti i valori raccolti nella prima e nella seconda fase al provider di persistenza nella seconda quando si richiama SaveWorkflowCommand. Nella quarta fase, l'host fornisce quindi tutti i valori raccolti a tutti i partecipanti di I/O di persistenza nella transazione di persistenza.

Un host esegue i passaggi seguenti durante il caricamento di un'istanza di persistenza:

  1. Rilascia LoadWorkflowCommand e LoadWorkflowByInstanceKeyCommand per il provider di persistenza.

  2. Esegue I/O nella transazione di persistenza.

  3. Pubblica i valori caricati.

Al livello più elevato, le estensioni dell'istanza del flusso di lavoro che derivano dalla classe PersistenceParticipant possono partecipare alla prima (raccolta) e alla seconda (mapping) fase del processo di impostazione della persistenza e alla terza fase (pubblicazione) del processo di caricamento. Le estensioni dell'istanza del flusso di lavoro derivanti dalla classe PersistenceIOParticipant possono partecipare inoltre alla quarta fase del processo di impostazione della persistenza e alla seconda fase del processo di caricamento (I/O).

Costruttori

PersistenceParticipant()

Inizializza un'istanza della classe PersistenceParticipant.

Metodi

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

Un host richiama questo metodo su un partecipante di persistenza personalizzato per raccogliere valori di lettura e scrittura e valori di sola scrittura, per l'impostazione della persistenza.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
MapValues(IDictionary<XName,Object>, IDictionary<XName,Object>)

Un host richiama questo metodo dopo avere raccolto i valori nella prima fase. L'host inoltra due dizionari di sola lettura di valori raccolti da tutti i partecipanti di persistenza durante la prima fase (fase CollectValues) a questo metodo per il mapping. L'host aggiunge i valori nel dizionario restituito da questo metodo alla raccolta di valori di sola scrittura.

MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
PublishValues(IDictionary<XName,Object>)

L'host richiama questo metodo e passa tutti i valori caricati nella raccolta InstanceData (compilata da LoadWorkflowCommand o LoadWorkflowByInstanceKeyCommand) come parametro di dizionario.

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Si applica a