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 vom 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 Lese-/Schreibzugriffswerte, die aus dem Persistenzspeicher geladen wurden. Dieses Wörterbuch entspricht dem Wörterbuch mit Lese-/Schreibwerten, die in der letzten Persistenz-Episode beibehalten werden.
Beispiele
Das folgende Codebeispiel veranschaulicht die Verwendung von PublishValues in einer Klasse, die von PersistenceParticipant. Dieses Beispiel stammt aus dem Beispiel für 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;
}
}
}