ReplicaMetadata.GetLocalVersions 메서드
파생 클래스에서 재정의되면 이 복제본에 저장된 변경 단위 및 항목의 버전을 포함하는 변경 내용 일괄 처리를 가져옵니다. 이러한 항목 및 변경 단위는 다른 공급자가 보낸 변경 내용 일괄 처리에서 참조되는 항목 및 변경 단위에 해당합니다.
네임스페이스: Microsoft.Synchronization.MetadataStorage
어셈블리: microsoft.synchronization.metadatastorage.dll의 Microsoft.Synchronization.MetadataStorage
구문
‘선언
Public MustOverride Function GetLocalVersions ( _
sourceChanges As ChangeBatch _
) As IEnumerable(Of ItemChange)
‘사용 방법
Dim instance As ReplicaMetadata
Dim sourceChanges As ChangeBatch
Dim returnValue As IEnumerable(Of ItemChange)
returnValue = instance.GetLocalVersions(sourceChanges)
public abstract IEnumerable<ItemChange> GetLocalVersions (
ChangeBatch sourceChanges
)
public:
virtual IEnumerable<ItemChange^>^ GetLocalVersions (
ChangeBatch^ sourceChanges
) abstract
public abstract IEnumerable<ItemChange> GetLocalVersions (
ChangeBatch sourceChanges
)
public abstract function GetLocalVersions (
sourceChanges : ChangeBatch
) : IEnumerable<ItemChange>
매개 변수
- sourceChanges
다른 공급자가 보낸 변경 내용 일괄 처리 중 이 복제본과 연결된 항목 저장소에 적용될 변경 내용 일괄 처리입니다.
반환 값
이 복제본에 저장된 변경 단위 및 항목의 버전을 포함하는 변경 내용 일괄 처리입니다. 이러한 항목 및 변경 단위는 다른 공급자가 보낸 변경 내용 일괄 처리에서 참조되는 항목 및 변경 단위에 해당합니다.
예외
예외 형식 | 조건 |
---|---|
개체가 삭제되었거나, 올바르게 초기화되지 않았습니다. |
|
sourceChanges가 null 참조(Visual Basic에서는 Nothing)입니다. |
주의
이 메서드를 사용하면 동기화 공급자가 해당 ProcessChangeBatch 메서드를 구현하는 데 도움이 됩니다.
변경 내용 적용자는 이 메서드에서 반환되는 변경 내용 일괄 처리의 버전을 사용하여 충돌을 검색합니다.
구현자를 위한 정보: 이 메서드에서 반환되는 변경 내용 일괄 처리에는 sourceChanges의 모든 항목에 대해 각각 하나의 항목이 있어야 하고 변경 단위 항목도 포함되어야 합니다. 항목 저장소에 항목이 있으면 해당 항목에 이 복제본에 대한 버전 정보가 있어야 합니다. 항목이 존재하지 않으면 해당 버전을 SyncVersion.UnknownVersion으로 설정하고 해당 ItemChange.ChangeKind 속성을 UnknownItem으로 설정해야 합니다.
예제
다음 예제에서는 GetLocalVersions를 사용하여 원본 변경 내용의 대상 버전을 가져오고 결과를 NotifyingChangeApplier.ApplyChanges에 전달하여 KnowledgeSyncProvider.ProcessChangeBatch를 구현합니다.
public override void ProcessChangeBatch(ConflictResolutionPolicy resolutionPolicy, ChangeBatch sourceChanges, object changeDataRetriever, SyncCallbacks syncCallbacks, SyncSessionStatistics sessionStatistics)
{
// Use the metadata storage service to get the local versions of changes received from the source provider.
IEnumerable<ItemChange> localVersions = _ContactStore.ContactReplicaMetadata.GetLocalVersions(sourceChanges);
// Use a NotifyingChangeApplier object to process the changes. Note that this object is passed as the INotifyingChangeApplierTarget
// object that will be called to apply changes to the item store.
NotifyingChangeApplier changeApplier = new NotifyingChangeApplier(ContactStore.ContactIdFormatGroup);
changeApplier.ApplyChanges(resolutionPolicy, sourceChanges, (IChangeDataRetriever)changeDataRetriever,
localVersions, _ContactStore.ContactReplicaMetadata.GetKnowledge(),
_ContactStore.ContactReplicaMetadata.GetForgottenKnowledge(), this, _sessionContext, syncCallbacks);
}
참고 항목
참조
ReplicaMetadata 클래스
ReplicaMetadata 멤버
Microsoft.Synchronization.MetadataStorage 네임스페이스