PersistenceParticipant.CollectValues Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Een host roept deze methode aan op een aangepaste persistentiedeelnemer om waarden voor lezen/schrijven en alleen-schrijven-waarden te verzamelen, zodat deze behouden blijft.
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))
Parameters
- readWriteValues
- IDictionary<XName,Object>
De waarden voor lezen/schrijven die moeten worden behouden.
- writeOnlyValues
- IDictionary<XName,Object>
De alleen-schrijven-waarden die moeten worden behouden.
Voorbeelden
Het volgende codevoorbeeld laat zien hoe u CollectValues gebruikt in een klasse die is afgeleid van PersistenceParticipant. Dit voorbeeld is afkomstig uit het voorbeeld persistentiedeelnemers .
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;
}
}
}
Opmerkingen
De hostpakketten lezen-schrijven-waarden in de eerste woordenlijst als InstanceValue objecten van een InstanceData verzameling en verpakken alleen-schrijven-waarden in de tweede woordenlijst als InstanceValue objecten met Optional en WriteOnly vlaggen die zijn ingesteld. Zie InstanceValueOptions voor meer informatie.
Important
Elke waarde die wordt geleverd door implementaties van CollectValues alle persistentiedeelnemers binnen één persistentie-aflevering, moet een unieke XName hebben.