PersistenceParticipant.CollectValues Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
En värd anropar den här metoden på en anpassad beständighetsdeltagare för att samla in skrivskyddade värden och skrivskyddade värden som ska sparas.
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))
Parametrar
- readWriteValues
- IDictionary<XName,Object>
Läs- och skrivvärdena som ska sparas.
- writeOnlyValues
- IDictionary<XName,Object>
Skrivskyddade värden som ska sparas.
Exempel
Följande kodexempel visar hur du använder CollectValues i en klass som härleds från PersistenceParticipant. Det här exemplet är från exemplet Persistence Participants (Beständighetsdeltagare).
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;
}
}
}
Kommentarer
Värden paketar skrivskyddade värden i den första ordlistan som InstanceValue objekt i en InstanceData samling och paketar skrivskyddade värden i den andra ordlistan som InstanceValue objekt med Optional och WriteOnly flaggor inställda. Mer information finns i InstanceValueOptions.
Important
Varje värde som tillhandahålls av implementeringar av CollectValues alla beständighetsdeltagare inom ett persistence-avsnitt måste ha ett unikt XName.