PersistenceParticipant.PublishValues(IDictionary<XName,Object>) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Der Host ruft diese Methode auf und übergibt alle geladenen Werte in der InstanceData-Auflistung (gefüllt per LoadWorkflowCommand oder LoadWorkflowByInstanceKeyCommand) als Wörterbuchparameter.
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))
Parameter
- readWriteValues
- IDictionary<XName,Object>
Die Werte mit Lese-/Schreibzugriff, die aus dem Persistenzspeicher geladen wurden. Dieses Worterbuch entspricht dem Wörterbuch mit Lese-/Schreibwerten, die in der letzten Dauerhaftigkeitsepisode beibehalten wurden.
Beispiele
Im folgenden Codebeispiel wird die Verwendung von PublishValues in einer Klasse veranschaulicht, die von PersistenceParticipant abgeleitet wird. Dieses Beispiel stammt aus dem Beispiel Persistenzteilnehmer .
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;
}
}
}