PersistenceParticipant.CollectValues Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Un host richiama questo metodo su un partecipante di persistenza personalizzato per raccogliere valori di lettura e scrittura e valori di sola scrittura, per l'impostazione della persistenza.
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))
Parametri
- readWriteValues
- IDictionary<XName,Object>
Valori di lettura e scrittura da rendere persistenti.
- writeOnlyValues
- IDictionary<XName,Object>
Valori di sola scrittura da rendere persistenti.
Esempio
Nell'esempio di codice seguente viene mostrato l'utilizzo di CollectValues in una classe derivata dall'oggetto PersistenceParticipant. Questo esempio proviene dall'esempio Partecipanti alla persistenza .
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;
}
}
}
Commenti
L'host comprime i valori di lettura e scrittura nel primo dizionario come oggetti InstanceValue di una raccolta di InstanceData e comprime i valori di sola scrittura nel secondo dizionario come oggetti InstanceValue con i flag Optional e WriteOnly impostati. Per altre informazioni, vedere InstanceValueOptions.
Importante
Il nome XName di ogni valore fornito dalle implementazioni di CollectValues in tutti i partecipanti di persistenza all'interno di un episodio di persistenza deve essere univoco.