Partager via


PersistenceParticipant.PublishValues(IDictionary<XName,Object>) Méthode

Définition

L’hôte appelle cette méthode et passe toutes les valeurs chargées dans la collection InstanceData (remplie par LoadWorkflowCommand ou LoadWorkflowByInstanceKeyCommand) en tant que paramètre de dictionnaire.

protected:
 virtual void PublishValues(System::Collections::Generic::IDictionary<System::Xml::Linq::XName ^, System::Object ^> ^ readWriteValues);
protected virtual void PublishValues (System.Collections.Generic.IDictionary<System.Xml.Linq.XName,object> readWriteValues);
abstract member PublishValues : System.Collections.Generic.IDictionary<System.Xml.Linq.XName, obj> -> unit
override this.PublishValues : System.Collections.Generic.IDictionary<System.Xml.Linq.XName, obj> -> unit
Protected Overridable Sub PublishValues (readWriteValues As IDictionary(Of XName, Object))

Paramètres

readWriteValues
IDictionary<XName,Object>

Valeurs en lecture-écriture qui ont été chargées à partir du magasin de persistance. Ce dictionnaire correspond au dictionnaire de valeurs en lecture-écriture persistantes dans l'épisode de persistance le plus récent.

Exemples

L'exemple de code suivant montre comment utiliser PublishValues dans une classe qui dérive de PersistenceParticipant. Cet exemple provient de l’exemple Participants à la persistance .

public class StepCountExtension : PersistenceParticipant
{
    static XNamespace stepCountNamespace = XNamespace.Get("urn:schemas-microsoft-com:Microsoft.Samples.WF/WorkflowInstances/properties");
    static XName currentCountName = stepCountNamespace.GetName("CurrentCount");

    int currentCount;

    public int CurrentCount
    {
        get
        {
            return this.currentCount;
        }
    }

    internal void IncrementStepCount()
    {
        this.currentCount += 1;
    }

    protected override void CollectValues(out IDictionary<XName, object> readWriteValues, out IDictionary<XName, object> writeOnlyValues)
    {
        readWriteValues = new Dictionary<XName, object>(1) { { currentCountName, this.currentCount } };
        writeOnlyValues = null;
    }

    protected override void PublishValues(IDictionary<XName, object> readWriteValues)
    {
        object loadedData;
        if (readWriteValues.TryGetValue(currentCountName, out loadedData))
        {
            this.currentCount = (int)loadedData;
        }
    }
}

S’applique à