Partager via


MemberChangeConflict.Member - Propriété

Obtient les informations de métadonnées sur la propriété de l'objet d'élément de liste qui représente le champ pour lequel il existe un écart.

Espace de noms :  Microsoft.SharePoint.Linq
Assembly :  Microsoft.SharePoint.Linq (dans Microsoft.SharePoint.Linq.dll)

Syntaxe

'Déclaration
Public ReadOnly Property Member As MemberInfo
    Get
'Utilisation
Dim instance As MemberChangeConflict
Dim value As MemberInfo

value = instance.Member
public MemberInfo Member { get; }

Valeur de propriété

Type : System.Reflection.MemberInfo
Un objet MemberInfo qui conserve des informations sur la propriété.

Remarques

Member est une sorte de supprimer à la fois la représentation sous forme de la colonne (champ) dans l'élément de liste pour lequel il existe une différence. Vous pouvez utiliser les propriétés MemberInfo pour déterminer quel champ d'élément de liste est impliqué dans l'écart et, par conséquent, quelle surcharge de Resolve() votre code doit appeler pour l' MemberChangeConflict et quels paramètres il doit passer à Resolve().

Mais, à vrai dire Member représente la propriété d'une classe de type de contenu. Plus précisément, elle représente une propriété qu'elle-même représente la colonne de liste. Par exemple, supposons que la classe de type de contenu est TeamMember et qu'il représente le type de contenu de liste d'un Membre de l'équipe . Si le type de contenu possède une colonne de Tâche en haut , la classe TeamMember aura une propriété nommée TopTask. Par conséquent, si l'écart constaté est pour le champ de Tâche en haut , puis Member. Name est « TopTask », pas « haut de tâche ».

Exemples

L'exemple suivant, indique Member utilisée pour déterminer la façon de résoudre une désynchronisation.

foreach (TeamMember teamMember in teamSite.TeamMembers)
{
    teamMember.TopTask = "Fiscal Planning";
}

try 
{
    teamSite.SubmitChanges(ConflictMode.ContinueOnConflict);
}
catch (ChangeConflictException e) 
{
    foreach (ObjectChangeConflict changedListItem in teamSite.ChangeConflicts)
    {
        // If another user has changed properties of a non-manager,
        // leave that other user’s changes, except for the TopTask field.
        if (((TeamMember)changedListItem.Object).IsManager = false)
        {        
             foreach (MemberChangeConflict changedField in changedListItem.MemberConflicts)
            {
                if (changedField.Member.Name == "TopTask")
                {
                    changedField.Resolve(RefreshMode.KeepCurrentValues);
                }
                else
                {
                    changedField.Resolve(RefreshMode.OverwriteCurrentValues);
                }
            }
        }
        // But if another user has changed properties of a manager, let this
        // process’s changes override the other user’s changes.
        else
        {
            changedListItem.Resolve(RefreshMode.KeepCurrentValues);
        }    
    }

    teamSite.SubmitChanges();
} // end catch
For Each teamMember As TeamMember In teamSite.TeamMembers
    teamMember.TopTask = "Fiscal Planning"
Next teamMember

Try
    teamSite.SubmitChanges(ConflictMode.ContinueOnConflict)
Catch e As ChangeConflictException
    For Each changedListItem As ObjectChangeConflict In teamSite.ChangeConflicts
        ' If another user has changed properties of a non-manager,
        ' leave that other user’s changes, except for the TopTask field.
        If Not (CType(changedListItem.Object, TeamMember)).IsManager Then
             For Each changedField As MemberChangeConflict In changedListItem.MemberConflicts
                If changedField.Member.Name = "TopTask" Then
                    changedField.Resolve(RefreshMode.KeepCurrentValues)
                Else
                    changedField.Resolve(RefreshMode.OverwriteCurrentValues)
                End If
             Next changedField
        ' But if another user has changed properties of a manager, let this
        ' process’s changes override the other user’s changes.
        Else
            changedListItem.Resolve(RefreshMode.KeepCurrentValues)
        End If
    Next changedListItem

    teamSite.SubmitChanges()
End Try ' end catch

Voir aussi

Référence

MemberChangeConflict classe

MemberChangeConflict - Membres

Microsoft.SharePoint.Linq - Espace de noms