RecoveryOrDiscardUnsyncedChangesHandler 클래스
동기화되지 않은 변경 사항을 자동으로 복구하려고 시도하는 클라이언트 재설정 전략입니다. 실패하면 이 핸들러는 동기화되지 않은 변경 사항 삭제 전략으로 돌아갑니다.
네임스페이스: Realms.동기화.ErrorHandling
어셈블리: Realm.exe
구문
public sealed class RecoverOrDiscardUnsyncedChangesHandler : ClientResetHandlerBase
비고
복구를 위해 구성된 클라이언트가 서버에서 "자동 복구를 실행할 수 없는 것으로" 플래그가 지정되면 자동 복구가 실패합니다. 이 상황에서 이 전략은 동기화되지 않은 삭제 전략으로 돌아갑니다. 그 역할을 반복합니다. 자동 병합 규칙에 대한 자세한 내용은 클라이언트 재설정-.NET SDK 를 참조하세요. 자동 복구 메커니즘은 쓰기 트랜잭션(write transaction)을 생성하므로 발생하는 모든 변경 사항이 표준 Realm의 변경 알림을 통해 올바르게 전파됩니다. RecoveryOrDiscardUnsyncedChangesHandler 전략은 4개의 콜백, 즉 OnBeforeReset, OnAfter Recovery, OnAfterDiscard 및 매뉴얼 ResetFallback 을 제공합니다. OnBeforeReset 은 클라이언트 재설정이 발생하기 직전에 호출됩니다. OnAfter Recovery 는 자동 클라이언트 재설정이 성공한 경우에만 호출됩니다. 자동 클라이언트 재설정이 실패하면 콜백이 호출되지 않습니다. OnAfterDiscard 는 자동 클라이언트 재설정에 실패하고 동기화되지 않은 클라이언트 재설정에 성공한 경우에만 호출됩니다. 동기화되지 않은 클라이언트 재설정 삭제에 실패하면 콜백이 호출되지 않습니다. 수동 재설정 폴백 은 복구 전략 중 하나에 오류가 발생하고 시스템을 수동 모드로 폴백해야 할 때마다 호출됩니다. 이 전략 사용에 대한 전반적인 권장 사항은 사용 가능한 세 가지 콜백의 사용은 다음과 같은 경우에만 고려해야 한다는 것입니다.
- 동기화되지 않은 로컬 변경 사항의 병합 또는 완전한 삭제로 인해 동기화되지 않은 데이터의 수신 잠재적 데이터 손실에 대해 OnBeforeReset 에서 사용자에게 알림을 제공해야 합니다.
- 재설정 프로세스가 완료되었음을 사용자에게 ( OnAfter Recovery 또는 OnAfterDiscard 에서) 알려야 합니다.
- 개발자가 동기화되지 않은 데이터를 가장 적절한 방식으로 복구하려는 데이터에 민감한 애플리케이션의 고급 사용 사례
- 클라이언트 재설정이 발생하기 전에 전체 Realm을 백업합니다( OnBeforeReset 내). 예를 들어, 이러한 백업을 사용하여 동기화되지 않은 데이터를 복원할 수 있습니다(3 참조).
속성
| 이 페이지 편집 소스 보기수동 재설정 폴백
작업을 완료할 수 없는 오류가 발생했을 때 트리거되는 콜백을 가져오거나 설정합니다(예: 파괴적인 스키마 변경의 경우).
선언
public ClientResetHandlerBase.ClientResetCallback? ManualResetFallback { get; set; }
속성 값
유형 | 설명 |
---|---|
ClientResetHandlerBase.ClientResetCallback | 자동 클라이언트 재설정 처리가 실패할 경우 콜백이 호출됩니다. |
OnAfterDiscard
방금 클라이언트 재설정에 대한 동기화되지 않은 변경 사항 삭제 대체가 발생했음을 나타내는 콜백을 가져오거나 설정합니다.
선언
public ClientResetHandlerBase.AfterResetCallback? OnAfterDiscard { get; set; }
속성 값
유형 | 설명 |
---|---|
ClientResetHandlerBase.애프터리셋 콜백 | 동기화되지 않은 변경 사항을 삭제하기 위해 설정된 클라이언트 재설정 직후에 호출된 콜백입니다. |
비고
자동 복구가 포함된 클라이언트 재설정을 시도했지만 서버에서 클라이언트가 이러한 전략을 사용하도록 허용하지 않는 경우, 동기화되지 않은 변경 사항 삭제 전략을 사용하여 클라이언트 재설정을 다시 시도합니다. 두 번째 시도가 성공하면 OnAfterDiscard 콜백이 호출됩니다.
OnAfter Recovery
방금 자동 클라이언트 재설정이 발생했음을 나타내는 콜백을 가져오거나 설정합니다.
선언
public ClientResetHandlerBase.AfterResetCallback? OnAfterRecovery { get; set; }
속성 값
유형 | 설명 |
---|---|
ClientResetHandlerBase.애프터리셋 콜백 | 클라이언트 재설정 직후 호출된 콜백입니다. |
OnBeforeReset
클라이언트 재설정이 곧 발생함을 나타내는 콜백을 가져오거나 설정합니다.
선언
public ClientResetHandlerBase.BeforeResetCallback? OnBeforeReset { get; set; }
속성 값
유형 | 설명 |
---|---|
ClientResetHandlerBase.비포리셋콜백 | 클라이언트 재설정 직전에 콜백이 호출되었습니다. |