Compartir a través de


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

Definición

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.

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

Parámetros

readWriteValues
IDictionary<XName,Object>

Valores de lectura y escritura que se cargaron desde el almacén de persistencia. Este diccionario corresponde al diccionario de valores de lectura y escritura que se conservaron en el episodio de persistencia más reciente.

Ejemplos

El siguiente ejemplo de código muestra cómo utilizar PublishValues en una clase que deriva de PersistenceParticipant. Este ejemplo procede del ejemplo De participantes de persistencia .

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

Se aplica a