PersistenceParticipant.PublishValues Method

The host invokes this method and passes all the loaded values in the InstanceData collection (filled by the LoadWorkflowCommand or LoadWorkflowByInstanceKeyCommand) as a dictionary parameter.

Namespace:  System.Activities.Persistence
Assembly:  System.Activities (in System.Activities.dll)

protected virtual void PublishValues(
	IDictionary<XName, Object> readWriteValues


Type: System.Collections.Generic.IDictionary<XName, Object>

The read-write values that were loaded from the persistence store. This dictionary corresponds to the dictionary of read-write values persisted in the most recent persistence episode.

The following code sample demonstrates using PublishValues in a class that derives from PersistenceParticipant. This example is from the Persistence Participants sample.

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
            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;

.NET Framework

Supported in: 4.5.2, 4.5.1, 4.5, 4

.NET Framework Client Profile

Supported in: 4

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Was this page helpful?
(1500 characters remaining)
Thank you for your feedback
© 2014 Microsoft