Partager via


Classe RecoverableErrorReportingContext

Représente le contexte de session de synchronisation passé au fournisseur pendant certains appels, afin que le fournisseur puisse signaler les erreurs récupérables qui se produisent dans le contexte de cet appel.

Espace de noms: Microsoft.Synchronization.SimpleProviders
Assembly: Microsoft.Synchronization.SimpleProviders (dans microsoft.synchronization.simpleproviders.dll)

Syntaxe

'Déclaration
Public Class RecoverableErrorReportingContext
'Utilisation
Dim instance As RecoverableErrorReportingContext
public class RecoverableErrorReportingContext
public ref class RecoverableErrorReportingContext
public class RecoverableErrorReportingContext
public class RecoverableErrorReportingContext

Exemple

L'exemple de code suivant affiche une implémentation de la méthode InsertItem qui applique des insertions à un magasin d'exemples de données en mémoire. La méthode enregistre une erreur de contrainte si l'insertion ne peut pas être appliquée. Pour consulter ce code dans le contexte d'une application complète, consultez l'application "Sync101 using Simple Sync Provider" qui est disponible dans le Kit de développement logiciel (SDK) Sync Framework et de Code Gallery.

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

Hiérarchie d'héritage

System.Object
  Microsoft.Synchronization.SimpleProviders.RecoverableErrorReportingContext

Sécurité des threads

Tous les membres publics statiques (Partagés en Visual Basic) de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Voir aussi

Référence

Membres RecoverableErrorReportingContext
Espace de noms Microsoft.Synchronization.SimpleProviders