Partager via


DestinationCallbacks propriété

En cas de substitution dans une classe dérivée, obtient un objet SyncCallbacks utilisé pour distribuer un événement de synchronisation.

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

Syntaxe

'Déclaration
Public ReadOnly Property DestinationCallbacks As SyncCallbacks
    Get
'Utilisation
Dim instance As SimpleSyncProvider
Dim value As SyncCallbacks

value = instance.DestinationCallbacks
public SyncCallbacks DestinationCallbacks { get; }
public:
virtual property SyncCallbacks^ DestinationCallbacks {
    SyncCallbacks^ get () sealed;
}
abstract DestinationCallbacks : SyncCallbacks
override DestinationCallbacks : SyncCallbacks
final function get DestinationCallbacks () : SyncCallbacks

Valeur de la propriété

Type : Microsoft.Synchronization. . :: . .SyncCallbacks
Objet SyncCallbacks utilisé pour distribuer un événement de synchronisation.

Exemples

L'exemple de code suivant crée des gestionnaires d'événements qui permettent à l'exemple d'application de signaler à la console la progression et l'état. 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.

static void RegisterCallbacks(Microsoft.Synchronization.SimpleProviders.SimpleSyncProvider provider)
{
    provider.DestinationCallbacks.FullEnumerationNeeded += new EventHandler<FullEnumerationNeededEventArgs>(DestinationCallbacks_FullEnumerationNeeded);
    provider.DestinationCallbacks.ItemChangeSkipped += new EventHandler<ItemChangeSkippedEventArgs>(DestinationCallbacks_ItemChangeSkipped);
    provider.DestinationCallbacks.ItemConflicting += new EventHandler<ItemConflictingEventArgs>(DestinationCallbacks_ItemConflicting);
    provider.DestinationCallbacks.ProgressChanged += new EventHandler<SyncStagedProgressEventArgs>(DestinationCallbacks_ProgressChanged);
}

static void DestinationCallbacks_ProgressChanged(object sender, SyncStagedProgressEventArgs e)
{
    if (e.Stage != SessionProgressStage.ChangeDetection)
    {
        Console.Write("Event Progress Changed: provider - {0}, ", e.ReportingProvider.ToString());
        Console.Write("stage - {0}, ", e.Stage.ToString());
        Console.WriteLine("work - {0} of {1}", e.CompletedWork, e.TotalWork);
    }
}

static void DestinationCallbacks_ItemConflicting(object sender, ItemConflictingEventArgs e)
{
    Console.Write("Event Item conflicting: source data - {0}, ", e.SourceChangeData != null ? e.SourceChangeData.ToString() : null);
    Console.WriteLine("destination data - {0}", e.DestinationChangeData != null ? e.DestinationChangeData.ToString() : null);
    e.SetResolutionAction(ConflictResolutionAction.Merge);
}

static void DestinationCallbacks_ItemChangeSkipped(object sender, ItemChangeSkippedEventArgs e)
{
    Console.Write("Event Item Change Skipped: provider {0}, ", e.ReportingProvider.ToString());
    Console.Write("stage - {0}, ", e.Stage.ToString());
    Console.WriteLine("item  - {0} ", e.ItemChange.ItemId.ToString());
}

static void DestinationCallbacks_FullEnumerationNeeded(object sender, FullEnumerationNeededEventArgs e)
{
    FullEnumerationAction action = FullEnumerationAction.Full;  // This can be changed by the application to control if full enumeration is FZull, Partial, or Aborted.
    Console.Write("Event Full Enumeration Needed: old action {0}, ", e.Action.ToString());
    Console.WriteLine("new action - {0} ", action.ToString());
    e.Action = action;
}
Private Shared Sub RegisterCallbacks(ByVal provider As Microsoft.Synchronization.SimpleProviders.SimpleSyncProvider)
    AddHandler provider.DestinationCallbacks.FullEnumerationNeeded, AddressOf DestinationCallbacks_FullEnumerationNeeded
    AddHandler provider.DestinationCallbacks.ItemChangeSkipped, AddressOf DestinationCallbacks_ItemChangeSkipped
    AddHandler provider.DestinationCallbacks.ItemConflicting, AddressOf DestinationCallbacks_ItemConflicting
    AddHandler provider.DestinationCallbacks.ProgressChanged, AddressOf DestinationCallbacks_ProgressChanged
End Sub

Private Shared Sub DestinationCallbacks_ProgressChanged(ByVal sender As Object, ByVal e As SyncStagedProgressEventArgs)
    If e.Stage <> SessionProgressStage.ChangeDetection Then
        Console.Write("Event Progress Changed: provider - {0}, ", e.ReportingProvider.ToString())
        Console.Write("stage - {0}, ", e.Stage.ToString())
        Console.WriteLine("work - {0} of {1}", e.CompletedWork, e.TotalWork)
    End If
End Sub

Private Shared Sub DestinationCallbacks_ItemConflicting(ByVal sender As Object, ByVal e As ItemConflictingEventArgs)
    Console.Write("Event Item conflicting: source data - {0}, ", If(e.SourceChangeData IsNot Nothing, e.SourceChangeData.ToString(), Nothing))
    Console.WriteLine("destination data - {0}", If(e.DestinationChangeData IsNot Nothing, e.DestinationChangeData.ToString(), Nothing))
    e.SetResolutionAction(ConflictResolutionAction.Merge)
End Sub

Private Shared Sub DestinationCallbacks_ItemChangeSkipped(ByVal sender As Object, ByVal e As ItemChangeSkippedEventArgs)
    Console.Write("Event Item Change Skipped: provider {0}, ", e.ReportingProvider.ToString())
    Console.Write("stage - {0}, ", e.Stage.ToString())
    Console.WriteLine("item - {0} ", e.ItemChange.ItemId.ToString())
End Sub

Private Shared Sub DestinationCallbacks_FullEnumerationNeeded(ByVal sender As Object, ByVal e As FullEnumerationNeededEventArgs)
    Dim action As FullEnumerationAction = FullEnumerationAction.Full
    ' This can be changed by the application to control if full enumeration is FZull, Partial, or Aborted. 
    Console.Write("Event Full Enumeration Needed: old action {0}, ", e.Action.ToString())
    Console.WriteLine("new action - {0} ", action.ToString())
    e.Action = action
End Sub

Voir aussi

Référence

SimpleSyncProvider Classe

Membres SimpleSyncProvider

Espace de noms Microsoft.Synchronization.SimpleProviders