PersistenceParticipant.PublishValues(IDictionary<XName,Object>) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
L'host richiama questo metodo e passa tutti i valori caricati nella InstanceData raccolta (compilata da LoadWorkflowCommand o LoadWorkflowByInstanceKeyCommand) come parametro del dizionario.
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))
Parametri
- readWriteValues
- IDictionary<XName,Object>
Valori di lettura/scrittura caricati dall'archivio di persistenza. Questo dizionario corrisponde al dizionario dei valori di lettura/scrittura resi persistenti nell'episodio di persistenza più recente.
Esempio
Nell'esempio di codice seguente viene illustrato l'uso di PublishValues in una classe che deriva da PersistenceParticipant. Questo esempio proviene dall'esempio Persistence Participants .
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;
}
}
}