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


Атрибут x:FieldModifier

Обновлен: Ноябрь 2007

Изменяет поведение компиляции XAML таким образом, что поля для ссылки на именованные объекты определяются с доступом NonPublic, а не с доступом Public по умолчанию.

Использование атрибута XAML

<object x:FieldModifier="Public".../>

Значения XAML

Public

Точная строка для указания Public или NonPublic зависит от языка программирования, используемого в коде. См. примечания.

Зависимости

x:Name также должен быть предоставлен в том же элементе.

Заметки

Значение атрибута x:FieldModifier будет зависеть от языка программирования. Используемая строка будет зависеть от того, как каждый язык реализует свой CodeDomProvider, от преобразователей типов, возвращаемых для определения значений TypeAttributes.Public и TypeAttributes.NonPublic, а также от того, чувствителен ли язык к регистру или нет.

  • В C# передаваемая строка для назначения Public представляет собой public.

  • В Microsoft Visual Basic .NET передаваемая строка для назначения Public представляет собой Public.

  • В C++/CLI целевые объекты C++/CLI в настоящее время не поддерживают компилируемый XAML.

Можно также указать NonPublic (internal в C#, Friend в Microsoft Visual Basic .NET), но это используется редко, так как NonPublic является поведением по умолчанию.

NonPublic используется по умолчанию, так как нередко случается, что коду вне сборки XAML требуется доступ к элементу, созданному XAML. Архитектура безопасности WPF сознательно не создает поля, которые публично хранят экземпляры элементов, если явным образом не установить x:FieldModifier.

x:FieldModifier применяется только для элементов с Атрибут x:Name, поскольку это имя используется для ссылки на открытое поле.

Частичный класс для корневого элемента является открытым по умолчанию, но может быть объявлен закрытым с помощью Атрибут x:ClassModifier. Атрибут x:ClassModifier также влияет на уровень доступа к экземпляру класса корневого элемента. x:Name и x:FieldModifier можно поместить в корневой элемент, но при этом всего лишь создается открытая копия поля корневого элемента, а действительный уровень доступа класса корневого элемента по-прежнему контролируется Атрибут x:ClassModifier.

См. также

Основные понятия

Язык XAML и пользовательские классы

Выделенный код и XAML

Построение приложения WPF

Ссылки

Атрибут x:Name

Атрибут x:ClassModifier