DestinationCallbacks プロパティ

派生クラスでオーバーライドされると、同期イベントのディスパッチに使用される SyncCallbacks オブジェクトを取得します。

名前空間:  Microsoft.Synchronization.SimpleProviders
アセンブリ:  Microsoft.Synchronization.SimpleProviders (Microsoft.Synchronization.SimpleProviders.dll 内)

構文

'宣言
Public ReadOnly Property DestinationCallbacks As SyncCallbacks
    Get
'使用
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

プロパティ値

型 : Microsoft.Synchronization. . :: . .SyncCallbacks
同期イベントのディスパッチに使用される SyncCallbacks オブジェクト。

次のコード例では、サンプル アプリケーションで進行状況と状態をコンソールに表示できるようにするイベント ハンドラーを作成します。完全なアプリケーションのコンテキストでこのコードを表示するには、Sync Framework SDK やCode Galleryから入手できる "Sync101 using Simple Sync Provider" アプリケーションを参照してください。

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

参照

参照

SimpleSyncProviderクラス

SimpleSyncProvider メンバー

Microsoft.Synchronization.SimpleProviders 名前空間