PersistenceParticipant.CollectValues 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.
Ein Host ruft diese Methode für einen benutzerdefinierten Persistenzteilnehmer auf, um Lese-/Schreibwerte und schreibgeschützte Werte zu sammeln, die beibehalten werden sollen.
protected:
virtual void CollectValues([Runtime::InteropServices::Out] System::Collections::Generic::IDictionary<System::Xml::Linq::XName ^, System::Object ^> ^ % readWriteValues, [Runtime::InteropServices::Out] System::Collections::Generic::IDictionary<System::Xml::Linq::XName ^, System::Object ^> ^ % writeOnlyValues);
protected virtual void CollectValues(out System.Collections.Generic.IDictionary<System.Xml.Linq.XName,object> readWriteValues, out System.Collections.Generic.IDictionary<System.Xml.Linq.XName,object> writeOnlyValues);
abstract member CollectValues : IDictionary * IDictionary -> unit
override this.CollectValues : IDictionary * IDictionary -> unit
Protected Overridable Sub CollectValues (ByRef readWriteValues As IDictionary(Of XName, Object), ByRef writeOnlyValues As IDictionary(Of XName, Object))
Parameter
- readWriteValues
- IDictionary<XName,Object>
Die zu speichernden Lese-/Schreibwerte.
- writeOnlyValues
- IDictionary<XName,Object>
Die schreibgeschützten Werte, die beibehalten werden sollen.
Beispiele
Das folgende Codebeispiel veranschaulicht die Verwendung von CollectValues 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;
}
}
}
Hinweise
Der Host packt Lese-/Schreibwerte im ersten Wörterbuch als InstanceValue Objekte einer InstanceData Auflistung und packt schreibgeschützte Werte im zweiten Wörterbuch als InstanceValue Objekte mit Optional und WriteOnly Flags. Weitere Informationen finden Sie unter InstanceValueOptions.
Important
Jeder Wert, der von Implementierungen aller CollectValues Persistenzteilnehmer innerhalb einer Persistenz-Episode bereitgestellt wird, muss über einen eindeutigen XName verfügen.