PersistenceParticipant.CollectValues 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
호스트는 사용자 지정 지속성 참가자에 대해 이 메서드를 호출하여 읽기-쓰기 값 및 쓰기 전용 값을 수집하여 유지할 수 있습니다.
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))
매개 변수
- readWriteValues
- IDictionary<XName,Object>
유지할 읽기-쓰기 값입니다.
- writeOnlyValues
- IDictionary<XName,Object>
유지할 쓰기 전용 값입니다.
예제
다음 코드 샘플에서는 에서 파생되는 클래스에서 CollectValues를 사용하는 방법을 보여 줍니다 PersistenceParticipant. 이 예제는 지속성 참가자 샘플에서 가져옵니다.
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;
}
}
}
설명
호스트는 첫 번째 사전의 읽기-쓰기 값을 컬렉션의 개체로 InstanceValue 패키지하고 두 번째 사전의 InstanceData 쓰기 전용 값을 설정된 개체 및 OptionalWriteOnly 플래그로 InstanceValue 패키지합니다. 자세한 내용은 InstanceValueOptions를 참조하세요.
Important
하나의 지속성 에피소드 내에서 모든 지속성 참가자의 CollectValues 구현에서 제공하는 각 값에는 고유한 XName이 있어야 합니다.