PersistenceParticipant.CollectValues Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Bir konak, kalıcı hale getirmek üzere okuma-yazma değerlerini ve salt yazma değerlerini toplamak için özel bir kalıcılık katılımcısı üzerinde bu yöntemi çağırır.
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))
Parametreler
- readWriteValues
- IDictionary<XName,Object>
Kalıcı hale getirmek için okuma-yazma değerleri.
- writeOnlyValues
- IDictionary<XName,Object>
Kalıcı hale getirmek için yalnızca yazma değerleri.
Örnekler
Aşağıdaki kod örneği, öğesinden PersistenceParticipanttüretilen bir sınıfta CollectValues kullanmayı gösterir. Bu örnek Kalıcılık Katılımcıları örneğinden alınmalıdır.
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;
}
}
}
Açıklamalar
Konak, ilk sözlükteki okuma-yazma değerlerini bir InstanceData koleksiyonun nesneleri olarakInstanceValue, ikinci sözlükteki salt yazma değerlerini ise ve WriteOnly bayrakları ayarlanmış nesneler Optional olarak InstanceValue paketler. Daha fazla bilgi için bkz. InstanceValueOptions.
Önemli
Bir kalıcılık bölümünde tüm kalıcılık katılımcılarının CollectValues uygulamaları tarafından sağlanan her değerin benzersiz bir XName'i olmalıdır.