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


Свойство MemberChangeConflict.Member

Получает сведения о метаданных о свойстве объекта элемента списка, представляющий поле, для которого имеется несоответствие.

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

Синтаксис

'Декларация
Public ReadOnly Property Member As MemberInfo
    Get
'Применение
Dim instance As MemberChangeConflict
Dim value As MemberInfo

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

Значение свойства

Тип: System.Reflection.MemberInfo
Объект MemberInfo , содержащий сведения о свойстве.

Замечания

Member представляет собой один раз удалить представление столбцов (полей) в элемент списка, для которого есть несоответствие. Можно использовать свойства MemberInfo для определения того, какие поля элемента списка участвует в расхождения и, таким образом, что перегрузка Resolve() код должен вызывать для MemberChangeConflict и какие параметры его следует передавать в Resolve().

Но, строго говоря, Member представляет свойство класса типа контента. В частности он представляет свойство, что сам представляет столбец списка. Предположим, например, тип содержимого класса TeamMember , его представляет тип содержимого списка Членов группы . Если тип содержимого столбца Сверху задач , класса TeamMember будет иметь свойство с именем TopTask. Таким образом, если расхождение для Задачи верхнего поля, а затем Member. Name — "TopTask", не "Начало задания".

Примеры

Следующий пример показывает Member используется для определения способа устранения расхождений.

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

См. также

Справочные материалы

MemberChangeConflict класс

Элементы MemberChangeConflict

Пространство имен Microsoft.SharePoint.Linq