Поделиться через


Метод NotifyingChangeApplier.ApplyChanges (ConflictResolutionPolicy, CollisionConflictResolutionPolicy, ChangeBatch, IChangeDataRetriever, Общий IEnumerable, SyncKnowledge, ForgottenKnowledge, INotifyingChangeApplierTarget, IConflictLogAccess, SyncSessionContext, SyncCallbacks)

Выполняет обнаружение конфликтов, обработку конфликтов параллелизма и конфликтов ограничений, а также применение изменений и управление журналом конфликтов для пакета изменений.

Пространство имен: Microsoft.Synchronization
Сборка: Microsoft.Synchronization (в microsoft.synchronization.dll)

Синтаксис

'Декларация
Public Sub ApplyChanges ( _
    resolutionPolicy As ConflictResolutionPolicy, _
    collisionConflictResolutionPolicy As CollisionConflictResolutionPolicy, _
    sourceChanges As ChangeBatch, _
    changeDataRetriever As IChangeDataRetriever, _
    destinationVersions As IEnumerable(Of ItemChange), _
    destinationKnowledge As SyncKnowledge, _
    destinationForgottenKnowledge As ForgottenKnowledge, _
    changeApplierTarget As INotifyingChangeApplierTarget, _
    conflictLogAccess As IConflictLogAccess, _
    syncSessionState As SyncSessionContext, _
    syncCallback As SyncCallbacks _
)
'Применение
Dim instance As NotifyingChangeApplier
Dim resolutionPolicy As ConflictResolutionPolicy
Dim collisionConflictResolutionPolicy As CollisionConflictResolutionPolicy
Dim sourceChanges As ChangeBatch
Dim changeDataRetriever As IChangeDataRetriever
Dim destinationVersions As IEnumerable(Of ItemChange)
Dim destinationKnowledge As SyncKnowledge
Dim destinationForgottenKnowledge As ForgottenKnowledge
Dim changeApplierTarget As INotifyingChangeApplierTarget
Dim conflictLogAccess As IConflictLogAccess
Dim syncSessionState As SyncSessionContext
Dim syncCallback As SyncCallbacks

instance.ApplyChanges(resolutionPolicy, collisionConflictResolutionPolicy, sourceChanges, changeDataRetriever, destinationVersions, destinationKnowledge, destinationForgottenKnowledge, changeApplierTarget, conflictLogAccess, syncSessionState, syncCallback)
public void ApplyChanges (
    ConflictResolutionPolicy resolutionPolicy,
    CollisionConflictResolutionPolicy collisionConflictResolutionPolicy,
    ChangeBatch sourceChanges,
    IChangeDataRetriever changeDataRetriever,
    IEnumerable<ItemChange> destinationVersions,
    SyncKnowledge destinationKnowledge,
    ForgottenKnowledge destinationForgottenKnowledge,
    INotifyingChangeApplierTarget changeApplierTarget,
    IConflictLogAccess conflictLogAccess,
    SyncSessionContext syncSessionState,
    SyncCallbacks syncCallback
)
public:
void ApplyChanges (
    ConflictResolutionPolicy resolutionPolicy, 
    CollisionConflictResolutionPolicy collisionConflictResolutionPolicy, 
    ChangeBatch^ sourceChanges, 
    IChangeDataRetriever^ changeDataRetriever, 
    IEnumerable<ItemChange^>^ destinationVersions, 
    SyncKnowledge^ destinationKnowledge, 
    ForgottenKnowledge^ destinationForgottenKnowledge, 
    INotifyingChangeApplierTarget^ changeApplierTarget, 
    IConflictLogAccess^ conflictLogAccess, 
    SyncSessionContext^ syncSessionState, 
    SyncCallbacks^ syncCallback
)
public void ApplyChanges (
    ConflictResolutionPolicy resolutionPolicy, 
    CollisionConflictResolutionPolicy collisionConflictResolutionPolicy, 
    ChangeBatch sourceChanges, 
    IChangeDataRetriever changeDataRetriever, 
    IEnumerable<ItemChange> destinationVersions, 
    SyncKnowledge destinationKnowledge, 
    ForgottenKnowledge destinationForgottenKnowledge, 
    INotifyingChangeApplierTarget changeApplierTarget, 
    IConflictLogAccess conflictLogAccess, 
    SyncSessionContext syncSessionState, 
    SyncCallbacks syncCallback
)
public function ApplyChanges (
    resolutionPolicy : ConflictResolutionPolicy, 
    collisionConflictResolutionPolicy : CollisionConflictResolutionPolicy, 
    sourceChanges : ChangeBatch, 
    changeDataRetriever : IChangeDataRetriever, 
    destinationVersions : IEnumerable<ItemChange>, 
    destinationKnowledge : SyncKnowledge, 
    destinationForgottenKnowledge : ForgottenKnowledge, 
    changeApplierTarget : INotifyingChangeApplierTarget, 
    conflictLogAccess : IConflictLogAccess, 
    syncSessionState : SyncSessionContext, 
    syncCallback : SyncCallbacks
)

Параметры

  • resolutionPolicy
    Политика, применяемая для разрешения конфликтов.
  • collisionConflictResolutionPolicy
    Политика, применяемая для разрешения конфликтов ограничений.
  • sourceChanges
    Пакет изменений от поставщика источника.
  • changeDataRetriever
    Объект, который можно использовать для получения данных, связанных с элементами, из реплики источника.
  • destinationVersions
    Пакет изменений, содержащий версии элементов, которые хранятся в реплике назначения. Эти элементы соответствуют элементам в списке sourceChanges.
  • destinationKnowledge
    Набор знаний реплики назначения.
  • destinationForgottenKnowledge
    Утраченный набор знаний реплики назначения.
  • changeApplierTarget
    Объект, который будет вызываться для сохранения изменений и конфликтов.
  • conflictLogAccess
    Журнал конфликтов, где хранятся отложенные конфликты и временные конфликты.
  • syncSessionState
    Сведения о состоянии для текущего сеанса.
  • syncCallback
    Обратные вызовы, которые будут получать уведомления о событиях применения изменений.

Замечания

Этот метод обнаруживает конфликты параллелизма, возникающие между изменениями, отправленными в sourceChanges, и соответствующими элементами в реплике назначения. Он разрешает все конфликты параллелизма в соответствии с политикой, определяемой параметром resolutionPolicy. Когда поставщик назначения сообщает о конфликтах ограничений, этот метод разрешает их в соответствии с политикой, заданной параметром collisionConflictResolutionPolicy. Если политика устранения конфликтов не задана, этот метод уведомляет приложение о конфликте, а действие по устранению конфликта определяется приложением. В случае необходимости этот метод вызывает методы для changeApplierTarget, чтобы сохранить изменения в реплике назначения и сохранить неразрешенные конфликты.

Объект применения изменений участвует в управлении журналом конфликтов, указанным в параметре conflictLogAccess, выполняя разрешение конфликтов в журнале и удаление устаревших конфликтов из журнала. Объект применения изменений также может сохранять в журнале конфликтов временные конфликты, которые возникают в результате слияния конфликтов ограничений. Все временные конфликты, добавленные в журнал, будут удалены перед завершением сеанса синхронизации.

См. также

Справочник

Класс NotifyingChangeApplier
Элементы NotifyingChangeApplier
Пространство имен Microsoft.Synchronization