AmbientAttribute Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Указывает, что свойство или тип должны рассматриваться как окружающее. Окружающая концепция связана с тем, как обработчики XAML определяют владельцев типов членов.
public ref class AmbientAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Property, Inherited=true)]
public sealed class AmbientAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Method | System.AttributeTargets.Property, Inherited=true)]
public sealed class AmbientAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Property, Inherited=true)>]
type AmbientAttribute = class
inherit Attribute
[<System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Method | System.AttributeTargets.Property, Inherited=true)>]
type AmbientAttribute = class
inherit Attribute
Public NotInheritable Class AmbientAttribute
Inherits Attribute
- Наследование
- Атрибуты
Комментарии
Внешнее свойство — это свойство, в котором значение, как ожидается, будет доступно в контексте синтаксического анализа при создании графа объектов, но при этом обычное подстановка элемента типа приостанавливается в целях немедленного создания набора узлов XAML. Существует два основных сценария для концепции окружающей среды:
Некоторое другое свойство того же объекта влияет на то, как должна работать эта подстановка свойств объекта.
Свойство представляет более крупный механизм отсрочки, а внешние возможности поиска значения члена расширяются ко всем объектам, содержащимся в текущем объекте.
Этот атрибут может применяться к определенным свойствам, которые имеют ожидаемые контейнеры, которые обеспечивают поведение подстановки внешних свойств или могут применяться к классу, чтобы включить поведение внешнего свойства во всех случаях этого типа значения для свойства.
AmbientAttribute также можно применить к методу CLR для поддержки присвоения присоединенного свойства XAML в качестве окружения. Это потенциально необходимо, так как в реализации СРЕДЫ CLR присоединенное свойство XAML реализовано или представлено для отражения в виде шаблона метода доступа и getset методов. Фактическое свойство CLR для атрибута не существует, поэтому ограничение использования AttributeTargets для того, чтобы Property не было включено указание присоединенного члена в качестве внешнего. Для присоединенного члена, который требуется сообщить как внешний, атрибут get метода доступа. Не следует пытаться атрибутировать методы, которые не поддерживают методы присоединенных элементов.
В предыдущих версиях .NET Framework этот класс существовал в сборке WPF для WindowsBase. В .NET Framework 4 AmbientAttribute находится в сборке System.Xaml. Дополнительные сведения см. в разделе "Типы, перенесенные из WPF в System.Xaml".
Внешние типы (типы, AmbientAttribute применяемые на уровне типа) можно использовать для определенных ситуаций обработки XAML, в которых тип свойства должен быть разрешен вне порядка.
Сценарии записи объектов
Если вы определяете модуль записи объектов XAML и обнаруживаете свойство, метод или тип, где AmbientAttribute применяется, обычно необходимо получить доступ к службе, чтобы определить предполагаемое поведение подстановки внешних свойств, необходимое для записи объектов. Дополнительные сведения см. в разделе IAmbientProvider.
Преобразователи значений
Для обработки свойств, представляющих сопоставления косвенных типов, например свойств, которые указывают элементы или типы строк по именам строк с квалификацией или без нее, может потребоваться знать преобразователи типов или преобразователи типов. В этом сценарии AmbientAttribute не предназначено для использования непосредственно для логики кода преобразователя значений. Скорее, преобразователь значений должен полагаться на поведение обработки записи XAML, которое будет передавать IAmbientProvider в контексты службы методы преобразователя значений при вызове.
Сценарии WPF для AmbientAttribute
Свойство a Style (TargetType) может квалифицировать необходимые подстановки имен свойств, необходимые для поиска резервных ссылок на имена свойств в Setter.Property значениях.
Все содержимое в свойстве
Resources(элементы a ResourceDictionary), а также содержимое шаблона должно иметь доступ к другим одноранговым узлам в качестве значений. Объявление всегоResourcesсвойства как внешнего вызова логики, которая включает это в средстве синтаксического анализа XAML WPF.
Пример ResourceDictionary сценария настройки AmbientAttribute на уровне типа.
Конструкторы
| Имя | Описание |
|---|---|
| AmbientAttribute() |
Инициализирует новый экземпляр класса AmbientAttribute. |
Свойства
| Имя | Описание |
|---|---|
| TypeId |
При реализации в производном классе получает уникальный идентификатор для этого Attribute. (Унаследовано от Attribute) |
Методы
| Имя | Описание |
|---|---|
| Equals(Object) |
Возвращает значение, указывающее, равен ли этот экземпляр указанному объекту. (Унаследовано от Attribute) |
| GetHashCode() |
Возвращает хэш-код для этого экземпляра. (Унаследовано от Attribute) |
| GetType() |
Возвращает Type текущего экземпляра. (Унаследовано от Object) |
| IsDefaultAttribute() |
При переопределении в производном классе указывает, является ли значение этого экземпляра значением по умолчанию для производного класса. (Унаследовано от Attribute) |
| Match(Object) |
При переопределении в производном классе возвращает значение, указывающее, равен ли этот экземпляр указанному объекту. (Унаследовано от Attribute) |
| MemberwiseClone() |
Создает неглубокую копию текущей Object. (Унаследовано от Object) |
| ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
Явные реализации интерфейса
| Имя | Описание |
|---|---|
| _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Сопоставляет набор имен соответствующему набору идентификаторов диспетчеризации. (Унаследовано от Attribute) |
| _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Извлекает сведения о типе объекта, который можно использовать для получения сведений о типе для интерфейса. (Унаследовано от Attribute) |
| _Attribute.GetTypeInfoCount(UInt32) |
Возвращает количество предоставляемых объектом интерфейсов для доступа к сведениям о типе (0 или 1). (Унаследовано от Attribute) |
| _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Предоставляет доступ к свойствам и методам, предоставляемым объектом. (Унаследовано от Attribute) |