Partager via


Énumération ConstraintConflictResolutionAction

Représente les actions effectuées pour résoudre un conflit de contraintes spécifique.

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

Syntaxe

'Déclaration
Public Enumeration ConstraintConflictResolutionAction
'Utilisation
Dim instance As ConstraintConflictResolutionAction
public enum ConstraintConflictResolutionAction
public enum class ConstraintConflictResolutionAction
type ConstraintConflictResolutionAction
public enum ConstraintConflictResolutionAction

Membres

Nom de membre Description
SkipChange Permet d'ignorer le conflit et de ne pas appliquer la modification. L'applicateur de modifications ne passe pas les données en conflit au fournisseur de destination.
DestinationWins La modification effectuée sur le réplica de destination gagne toujours. L'applicateur de modifications passe la modification de la source à la méthode SaveItemChange et spécifie une action d'enregistrement de DeleteAndStoreTombstone. Le fournisseur de destination crée un objet tombstone pour la modification de la source. Lorsque la destination joue le rôle de la source dans une synchronisation ultérieure, elle énumère une modification qui représente la suppression de l'élément source, et le supprime ainsi de la communauté de synchronisation.
SourceWins La modification effectuée sur le réplica source gagne toujours. L'applicateur de modifications passe la modification à la méthode SaveItemChange et spécifie une action d'enregistrement de DeleteConflictingAndSaveSourceItem. La modification de la source est appliquée au réplica de destination et l'élément de destination en conflit est supprimé de ce dernier.
SaveConflict Permet de consigner le conflit et de ne pas appliquer la modification. L'applicateur de modifications passe les données en conflit à la méthode SaveConstraintConflict, ce qui enregistre le conflit dans un journal des conflits. Pour plus d'informations sur la journalisation des conflits, consultez Journalisation et gestion des conflits.
Merge Les données de l'élément source sont combinées à l'élément de destination. L'applicateur de modifications passe les données de modification du réplica source à la méthode SaveItemChange et spécifie une action d'enregistrement de ChangeIdUpdateVersionAndMergeData. Pour plus d'informations, consultez la section Fusion des éléments en conflit de la rubrique Détection et résolution des conflits de contraintes.
RenameSource La modification envoyée du fournisseur de source est renommée afin qu'elle n'entre plus en conflit avec l'élément en conflit sur le réplica de destination, et la modification de la source est appliquée au réplica de destination. L'applicateur de modifications passe la modification à la méthode SaveItemChange et spécifie une action d'enregistrement de RenameSourceAndUpdateVersionAndData.
RenameDestination L'élément en conflit sur le réplica de destination est renommé afin qu'il n'entre plus en conflit avec la modification envoyée du fournisseur de source, et la modification de la source est appliquée au réplica de destination. L'applicateur de modifications passe la modification à la méthode SaveItemChange et spécifie une action d'enregistrement de RenameDestinationAndUpdateVersionData.

Notes

Les membres de l'objet ConstraintConflictResolutionAction spécifient l'action que l'applicateur de modifications effectue pour résoudre les conflits de contraintes. Les conflits de contraintes sont des conflits qui ne respectent pas les contraintes mises sur les éléments ou unités de modification, par exemple la relation de dossiers ou l'emplacement de données portant le même nom dans un système de fichiers. Lorsqu'une stratégie de résolution de conflit de collision est spécifiée, l'action de résolution de conflit de contraintes est spécifiée par l'applicateur de modifications lorsqu'un conflit de contraintes de collision se produit. Sinon, l'action de résolution de conflit de contraintes est spécifiée par l'application de synchronisation lorsqu'elle est avertie qu'un conflit de contraintes s'est produit.

Pour plus d'informations sur les conflits de contraintes, consultez Détection et résolution des conflits de contraintes.

Exemples

L'exemple suivant implémente un gestionnaire pour l'événement ItemConstraint. Le gestionnaire affiche les éléments en conflit à l'intention de l'utilisateur et définit l'action de résolution de conflit de contraintes en fonction de la réponse de l'utilisateur.

Private Sub HandleItemConstraint(ByVal sender As [Object], ByVal args As ItemConstraintEventArgs)
    If ConstraintConflictReason.Collision = args.ConstraintConflictReason Then
        ' Display the two items that are in conflict and solicit a resolution from the user.
        Dim srcContact As New Contact(DirectCast(args.SourceChangeData, String()))
        Dim destContact As New Contact(DirectCast(args.DestinationChangeData, String()))
        Dim msg As String = ("Source change is " & srcContact.ToString() & vbLf & "Destination change is ") & destContact.ToString() & vbLf & "Click Yes to rename the source change and apply it." & vbLf & "Click No to rename the destination item and apply the source change." & vbLf & "Click Cancel to delete the destination item and apply the source change."
        Dim ccDlg As New ConstraintConflictDlg(msg)
        ccDlg.ShowDialog()

        ' Set the resolution action based on the user's response.
        args.SetResolutionAction(ccDlg.Resolution)
    Else
        args.SetResolutionAction(ConstraintConflictResolutionAction.SaveConflict)
    End If
End Sub
void HandleItemConstraint(Object sender, ItemConstraintEventArgs args)
{
    if (ConstraintConflictReason.Collision == args.ConstraintConflictReason)
    {
        // Display the two items that are in conflict and solicit a resolution from the user.
        Contact srcContact = new Contact((string[])args.SourceChangeData);
        Contact destContact = new Contact((string[])args.DestinationChangeData);
        string msg = "Source change is " + srcContact.ToString() +
                   "\nDestination change is " + destContact.ToString() +
                   "\nClick Yes to rename the source change and apply it." +
                   "\nClick No to rename the destination item and apply the source change." +
                   "\nClick Cancel to delete the destination item and apply the source change.";
        ConstraintConflictDlg ccDlg = new ConstraintConflictDlg(msg);
        ccDlg.ShowDialog();

        // Set the resolution action based on the user's response.
        args.SetResolutionAction(ccDlg.Resolution);
    }
    else 
    {
        args.SetResolutionAction(ConstraintConflictResolutionAction.SaveConflict);
    }
}

Voir aussi

Référence

Espace de noms Microsoft.Synchronization