Freigeben über


RecoverableErrorReportingContext-Klasse

Stellt den Synchronisierungssitzungskontext dar, der während einiger Aufrufe an den Anbieter übergeben wird, damit der Anbieter alle behebbaren Fehler melden kann, die innerhalb des Kontexts dieses Aufrufs auftreten.

Namespace: Microsoft.Synchronization.SimpleProviders
Assembly: Microsoft.Synchronization.SimpleProviders (in microsoft.synchronization.simpleproviders.dll)

Syntax

'Declaration
Public Class RecoverableErrorReportingContext
'Usage
Dim instance As RecoverableErrorReportingContext
public class RecoverableErrorReportingContext
public ref class RecoverableErrorReportingContext
public class RecoverableErrorReportingContext
public class RecoverableErrorReportingContext

Beispiel

Im folgenden Codebeispiel wird eine Implementierung der InsertItem-Methode gezeigt, die Einfügungen auf einen Beispieldatenspeicher im Arbeitsspeicher anwendet. Die Methode zeichnet einen Einschränkungsfehler auf, wenn die Einfügung nicht angewendet werden kann. In der "Sync101 using Simple Sync Provider"-Anwendung, die im Sync Framework SDK und in der Code Gallery verfügbar ist, finden Sie diesen Code im Kontext einer vollständigen Anwendung.

public override void InsertItem(object itemData, 
    IEnumerable<SyncId> changeUnitsToCreate,
    RecoverableErrorReportingContext recoverableErrorReportingContext, 
    out ItemFieldDictionary keyAndUpdatedVersion, 
    out bool commitKnowledgeAfterThisItem)
{
    ItemTransfer transfer = (ItemTransfer)itemData;
    ItemData dataCopy = new ItemData(transfer.ItemData);

    // Check for duplicates, and record a constraint error if a duplicate is detected.
    if (!_store.Contains(transfer.Id))
    {
        _store.CreateItem(dataCopy, transfer.Id);
        keyAndUpdatedVersion = _store.CreateItemFieldDictionary(transfer.Id);
    }
    else
    {
        recoverableErrorReportingContext.RecordConstraintError(_store.CreateItemFieldDictionary(transfer.Id));
        keyAndUpdatedVersion = null;
    }
    commitKnowledgeAfterThisItem = false;
}
Public Overrides Sub InsertItem(ByVal itemData As Object, ByVal changeUnitsToCreate As IEnumerable(Of SyncId), ByVal recoverableErrorReportingContext As RecoverableErrorReportingContext, ByRef keyAndUpdatedVersion As ItemFieldDictionary, ByRef commitKnowledgeAfterThisItem As Boolean)
    Dim transfer As ItemTransfer = DirectCast(itemData, ItemTransfer)
    Dim dataCopy As New ItemData(transfer.ItemData)

    ' Check for duplicates, and record a constraint error if a duplicate is detected. 
    If Not _store.Contains(transfer.Id) Then
        _store.CreateItem(dataCopy, transfer.Id)
        keyAndUpdatedVersion = _store.CreateItemFieldDictionary(transfer.Id)
    Else
        recoverableErrorReportingContext.RecordConstraintError(_store.CreateItemFieldDictionary(transfer.Id))
        keyAndUpdatedVersion = Nothing
    End If
    commitKnowledgeAfterThisItem = False
End Sub

Vererbungshierarchie

System.Object
  Microsoft.Synchronization.SimpleProviders.RecoverableErrorReportingContext

Threadsicherheit

Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Siehe auch

Verweis

RecoverableErrorReportingContext-Member
Microsoft.Synchronization.SimpleProviders-Namespace