Udostępnij za pośrednictwem


PersistenceParticipant Klasa

Definicja

Ta klasa umożliwia zarówno uczestnictwo w procesie trwałości, jak WorkflowApplication i WorkflowServiceHost uczestnictwo w procesie trwałości. Uczestnik trwałości pochodzi z PersistenceParticipant klasy lub PersistenceIOParticipant klasy (klasy pochodnej PersistenceParticipant klasy), implementuje metody abstrakcyjne, a następnie dodaje wystąpienie klasy jako rozszerzenie wystąpienia przepływu pracy. Element WorkflowApplication i WorkflowServiceHost poszukaj takich rozszerzeń podczas utrwalania wystąpienia i wywoływania odpowiednich metod w odpowiednim czasie.

public ref class PersistenceParticipant abstract
public abstract class PersistenceParticipant
type PersistenceParticipant = class
Public MustInherit Class PersistenceParticipant
Dziedziczenie
PersistenceParticipant
Pochodne

Przykłady

Poniższy przykładowy kod pokazuje tworzenie klasy pochodzącej z PersistenceParticipantklasy . Ten przykład pochodzi z przykładu Proces zatrudniania .

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

Uwagi

Host wykonuje następujące kroki (lub etapy) podczas utrwalania wystąpienia:

  1. Zbiera wartości do utrwalania.

  2. Mapuje pola wartości ze strukturą monolityczną na poszczególne wartości.

  3. SaveWorkflowCommand Wystawia dostawcę trwałości.

  4. Wykonuje operacje we/wy w ramach transakcji trwałości.

Host kończy etap przed rozpoczęciem następnego etapu. Na przykład podczas utrwalania host zbiera wartości ze wszystkich uczestników trwałości przed przejściem do drugiego etapu. W drugim etapie host udostępnia wszystkie wartości zebrane w pierwszym etapie do wszystkich uczestników trwałości na drugim etapie na potrzeby mapowania. W trzecim etapie host udostępnia wszystkie zebrane wartości w pierwszym i drugim etapie dostawcy trwałości podczas wywoływania SaveWorkflowCommandelementu . Następnie na czwartym etapie host udostępnia wszystkie zebrane wartości wszystkim uczestnikom operacji we/wy trwałości w ramach transakcji trwałości.

Host wykonuje następujące etapy podczas ładowania wystąpienia trwałości:

  1. LoadWorkflowCommand Problemy z dostawcą trwałości iLoadWorkflowByInstanceKeyCommand.

  2. Wykonuje operacje we/wy w ramach transakcji trwałości.

  3. Publikuje załadowane wartości.

Na najwyższym poziomie rozszerzenia wystąpienia przepływu pracy, które pochodzą z PersistenceParticipant klasy, mogą uczestniczyć w pierwszych etapach (Collect) i drugim (Map) procesu utrwalania i trzeciego etapu (Publikowanie) procesu ładowania. Rozszerzenia wystąpienia przepływu pracy pochodzące z klasy PersistenceIOParticipant mogą dodatkowo uczestniczyć w czwartym etapie procesu utrwalania i drugiego etapu procesu ładowania (we/wy).

Konstruktory

PersistenceParticipant()

Inicjuje wystąpienie klasy PersistenceParticipant.

Metody

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

Host wywołuje tę metodę dla niestandardowego uczestnika trwałości w celu zbierania wartości odczytu i zapisu i wartości tylko do zapisu, które mają być utrwalane.

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetType()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
MapValues(IDictionary<XName,Object>, IDictionary<XName,Object>)

Host wywołuje tę metodę po zakończeniu zbierania wartości w pierwszym etapie. Host przekazuje dwa słowniki tylko do odczytu wartości zebranych od wszystkich uczestników trwałości podczas pierwszego etapu (etap CollectValues) do tej metody mapowania. Host dodaje wartości w słowniku zwracanym przez tę metodę do kolekcji wartości tylko do zapisu.

MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
PublishValues(IDictionary<XName,Object>)

Host wywołuje tę metodę i przekazuje wszystkie załadowane wartości w InstanceData kolekcji (wypełnione przez LoadWorkflowCommand lub LoadWorkflowByInstanceKeyCommand) jako parametr słownika.

ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Dotyczy