AmbientAttribute Класс

Определение

Указывает, что свойство или тип должны обрабатываться как свойство или тип окружения.Specifies that a property or type should be treated as ambient. Концепция окружения относится к тому, как обработчики XAML определяют владельцев типов членов.The ambient concept relates to how XAML processors determine type owners of members.

public ref class AmbientAttribute sealed : 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)]
public sealed class AmbientAttribute : Attribute
type AmbientAttribute = class
    inherit Attribute
Public NotInheritable Class AmbientAttribute
Inherits Attribute
Наследование
AmbientAttribute
Атрибуты

Комментарии

Внешнее свойство — это свойство, в котором значение должно быть доступно в контексте средства синтаксического анализа при создании графа объекта, но если типичный Поиск члена типа приостанавливается в целях непосредственного создания набора узлов XAML.An ambient property is a property where the value is expected to be available in the parser context when creating an object graph, but where typical type-member lookup is suspended for purposes of the immediate XAML node set being created. Существует два основных сценария для внешнего понятия:There are two main scenarios for the ambient concept:

  • Другое свойство того же объекта влияет и на то, как должен работать Уточняющий запрос свойства объекта.Some other property of the same object influences and qualifies how that object-property lookup should work.

  • Свойство представляет более крупный механизм отсрочки, а внешние возможности для поиска значения элемента расширяются на все объекты, содержащиеся в текущем объекте.The property represents a larger deferral mechanism and the ambient capabilities for looking up a member value extend to all objects contained within the current object.

Этот атрибут может применяться к конкретным свойствам, которые имеют ожидаемые контейнеры, которые обеспечивают поведение поиска внешнего свойства, или могут применяться к классу для включения поведения свойства окружения во всех случаях этого типа значения для свойства.This attribute can be applied to specific properties that have expected containers that enable an ambient property lookup behavior, or can be applied to a class to enable the ambient property behavior in all cases of that value type for a property.

AmbientAttribute также можно применить к методу CLR для поддержки присвоения атрибутов присоединяемому свойству XAML в качестве внешнего.AmbientAttribute can also be applied to a CLR method, to support attributing a XAML attachable property as ambient. Это потенциально необходимо, поскольку в реализации CLR вложенное свойство XAML реализуется или представляется отражением в качестве шаблона метода доступа с помощью методов get и set.This is potentially necessary because in a CLR implementation a XAML attached property is implemented/represented to reflection as an accessor pattern with get and set methods. Отсутствует фактическое свойство CLR для атрибута, поэтому при ограничении использования для AttributeTargets Property не было включено указание присоединяемого члена в качестве окружения.No actual CLR property to attribute exists, so restricting usage for AttributeTargets to Property would not have enabled specifying an attachable member as ambient. Для присоединяемого члена, который необходимо сообщить как внешний, атрибут get метода доступа.For an attachable member that you want to report as ambient, attribute the get accessor. Не следует пытаться применить к методам атрибуты, которые не поддерживают методы присоединяемых членов.You should not attempt to attribute methods that are not specifically support methods of attachable members.

В предыдущих версиях .NET Framework этот класс существовал в сборке, относящейся к WPF, WindowsBase.In previous versions of the .NET Framework, this class existed in the WPF-specific assembly WindowsBase. В .NET Framework 4.NET Framework 4AmbientAttribute находится в сборке System. XAML.In .NET Framework 4.NET Framework 4, AmbientAttribute is in the System.Xaml assembly. Для получения дополнительной информации см. Types Migrated from WPF to System.Xaml.For more information, see Types Migrated from WPF to System.Xaml.

Типы окружения (типы, где AmbientAttribute применяется на уровне типа) могут использоваться для определенных ситуаций обработки XAML, когда тип свойства необходимо разрешить в неопределенном порядке.Ambient types (types where AmbientAttribute is applied at type level) can be used for certain XAML processing situations where the type of a property needs to be resolved out of order.

Сценарии модуля записи объектовObject Writer Scenarios

При определении средства записи объектов XAML и при возникновении свойства, метода или типа, где применяется AmbientAttribute, обычно требуется доступ к службе для определения предполагаемого поведения внешнего поиска свойства, необходимого для записи объектов.If you are defining a XAML object writer, and you encounter a property, method or type where AmbientAttribute is applied, you typically must access a service to determine the intended ambient property lookup behavior that is needed for writing out objects. Для получения дополнительной информации см. IAmbientProvider.For more information, see IAmbientProvider.

Преобразователи значенийValue Converters

Преобразователям типов или расширениям разметки может потребоваться знать сведения о окружающей среды, чтобы обрабатывать свойства, представляющие косвенные сопоставления типов, такие как свойства, указывающие элементы или типы, по именам строк с квалификатором или без него.Type converters or markup extensions might need to know the ambient information in order to process properties that represent indirect type mappings, such as properties that specify members or types by string names with or without qualification. В этом сценарии AmbientAttribute не предназначен для непосредственного использования в логике кода преобразователя значений.In this scenario, AmbientAttribute is not intended to be used directly for value converter code logic. Вместо этого преобразователь значений должен полагаться на поведение обработки средства записи XAML, которое передает IAmbientProvider в контекстах службы в методы преобразователя значений при вызове.Rather, the value converter should rely on the XAML writer processing behavior, which will pass IAmbientProvider in its service contexts to your value converter methods when called.

Сценарии WPF для АмбиентаттрибутеWPF Scenarios for AmbientAttribute

  • Свойство Style (TargetType) может уточнять необходимые уточняющие запросы имени свойства, необходимые для поиска резервных ссылок для имен свойств в значениях Setter.Property.A property of a Style (TargetType) can qualify the necessary property name lookups that are needed to find the backing references for property names in Setter.Property values.

  • Все содержимое в свойстве Resources (элементы ResourceDictionary), а также содержимое шаблона, должно иметь возможность доступа к другим одноранговым узлам как к значениям.All content within a Resources property (items of a ResourceDictionary) as well as template content, should be able to access other peers as values. Объявление всего свойства Resources как окружения вызывает логику, которая делает это в средстве синтаксического анализа XAML WPF.Declaring the entire Resources property as ambient invokes logic that enables this in the WPF XAML parser.

Пример сценария установки AmbientAttribute на уровне типа см. в ResourceDictionary.See ResourceDictionary for an example of a scenario for setting AmbientAttribute at type level.

Конструкторы

AmbientAttribute()

Инициализация нового экземпляра класса AmbientAttribute.Initializes a new instance of the AmbientAttribute class.

Свойства

TypeId

В случае реализации в производном классе возвращает уникальный идентификатор для этого атрибута Attribute.When implemented in a derived class, gets a unique identifier for this Attribute.

(Унаследовано от Attribute)

Методы

Equals(Object)

Возвращает значение, показывающее, равен ли экземпляр указанному объекту.Returns a value that indicates whether this instance is equal to a specified object.

(Унаследовано от Attribute)
GetHashCode()

Возвращает хэш-код данного экземпляра.Returns the hash code for this instance.

(Унаследовано от Attribute)
GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Унаследовано от Object)
IsDefaultAttribute()

При переопределении в производном классе указывает, является ли значение этого экземпляра значением по умолчанию для производного класса.When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.

(Унаследовано от Attribute)
Match(Object)

При переопределении в производном классе возвращает значение, указывающее, является ли этот экземпляр равным заданному объекту.When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.

(Унаследовано от Attribute)
MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Унаследовано от Object)
ToString()

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

(Унаследовано от Object)

Явные реализации интерфейса

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Сопоставляет набор имен соответствующему набору идентификаторов диспетчеризации.Maps a set of names to a corresponding set of dispatch identifiers.

(Унаследовано от Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Возвращает сведения о типе объекта, которые можно использовать для получения сведений о типе интерфейса.Retrieves the type information for an object, which can be used to get the type information for an interface.

(Унаследовано от Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Возвращает количество предоставляемых объектом интерфейсов для доступа к сведениям о типе (0 или 1).Retrieves the number of type information interfaces that an object provides (either 0 or 1).

(Унаследовано от Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Предоставляет доступ к открытым свойствам и методам объекта.Provides access to properties and methods exposed by an object.

(Унаследовано от Attribute)

Применяется к

Дополнительно