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