Compartir a través de


DestinationCallbacks Propiedad

Cuando se invalida en una clase derivada, obtiene un objeto SyncCallbacks que se utiliza para enviar un evento de sincronización.

Espacio de nombres:  Microsoft.Synchronization.SimpleProviders
Ensamblado:  Microsoft.Synchronization.SimpleProviders (en Microsoft.Synchronization.SimpleProviders.dll)

Sintaxis

'Declaración
Public ReadOnly Property DestinationCallbacks As SyncCallbacks
    Get
'Uso
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

Valor de la propiedad

Tipo: Microsoft.Synchronization. . :: . .SyncCallbacks
Objeto SyncCallbacks que se utiliza para enviar un evento de sincronización.

Ejemplos

El siguiente ejemplo de código crea controladores de eventos que hacen posible que la aplicación de ejemplo notifique a la consola el progreso y estado. Para consultar este código en el contexto de una aplicación completa, vea la aplicación "Sync101 using Simple Sync Provider" que está disponible en Sync Framework SDK y en 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

Vea también

Referencia

SimpleSyncProvider Clase

SimpleSyncProvider Miembros

Microsoft.Synchronization.SimpleProviders Espacio de nombres