AmbientAttribute Classe

Définition

Spécifie qu’une propriété ou un type doit être traité comme ambiant.Specifies that a property or type should be treated as ambient. Le concept de caractère ambiant renvoie à la façon dont les processeurs XAML déterminent les propriétaires de types des membres.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)]
[System.AttributeUsage(System.AttributeTargets.Property, Inherited=true)]
public sealed class AmbientAttribute : Attribute
type AmbientAttribute = class
    inherit Attribute
Public NotInheritable Class AmbientAttribute
Inherits Attribute
Héritage
AmbientAttribute
Attributs

Remarques

Une propriété ambiante est une propriété où la valeur est supposée être disponible dans le contexte de l’analyseur lors de la création d’un graphique d’objet, mais où la recherche de membres de type standard est suspendue à des fins de création du jeu de nœuds XAML immédiat.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. Il existe deux principaux scénarios pour le concept ambiant :There are two main scenarios for the ambient concept:

  • Une autre propriété du même objet influence et qualifie le fonctionnement de cette recherche de propriété d’objet.Some other property of the same object influences and qualifies how that object-property lookup should work.

  • La propriété représente un mécanisme de report plus grand et les fonctionnalités ambiantes pour la recherche d’une valeur de membre s’étendent à tous les objets contenus dans l’objet actuel.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.

Cet attribut peut être appliqué à des propriétés spécifiques qui ont des conteneurs attendus qui activent un comportement de recherche de propriété ambiante, ou peuvent être appliqués à une classe pour activer le comportement de propriété ambiante dans tous les cas de ce type de valeur pour une propriété.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 peut également être appliqué à une méthode CLR, pour prendre en charge l’attribution d’une propriété XAML pouvant être attachée comme ambiant.AmbientAttribute can also be applied to a CLR method, to support attributing a XAML attachable property as ambient. Cela est potentiellement nécessaire, car dans une implémentation CLR, une propriété jointe XAML est implémentée/représentée à la réflexion comme un modèle d’accesseur avec des méthodes get et 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. Il n’existe pas de propriété CLR réelle pour l’attribut, donc la restriction de l’utilisation de AttributeTargets à Property n’aurait pas permis de spécifier un membre pouvant être attaché comme ambiant.No actual CLR property to attribute exists, so restricting usage for AttributeTargets to Property would not have enabled specifying an attachable member as ambient. Pour un membre pouvant être attaché que vous souhaitez signaler comme ambiant, attribuez l’accesseur get.For an attachable member that you want to report as ambient, attribute the get accessor. Vous ne devez pas essayer d’attribuer des méthodes qui ne prennent pas en charge spécifiquement les méthodes des membres pouvant être attachés.You should not attempt to attribute methods that are not specifically support methods of attachable members.

Dans les versions précédentes du .NET Framework, cette classe existait dans l’assembly WindowsBase spécifique à WPF.In previous versions of the .NET Framework, this class existed in the WPF-specific assembly WindowsBase. Dans .NET Framework 4.NET Framework 4, AmbientAttribute se trouve dans l’assembly System. Xaml.In .NET Framework 4.NET Framework 4, AmbientAttribute is in the System.Xaml assembly. Pour plus d'informations, consultez Types Migrated from WPF to System.Xaml.For more information, see Types Migrated from WPF to System.Xaml.

Les types ambiants (types où AmbientAttribute est appliqué au niveau du type) peuvent être utilisés pour certaines situations de traitement XAML où le type d’une propriété doit être résolu dans le désordre.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.

Scénarios de writer d’objetObject Writer Scenarios

Si vous définissez un writer d’objet XAML et que vous rencontrez une propriété, une méthode ou un type où AmbientAttribute est appliqué, vous devez généralement accéder à un service pour déterminer le comportement de recherche de propriété ambiante prévu qui est nécessaire pour l’écriture des objets.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. Pour plus d'informations, consultez IAmbientProvider.For more information, see IAmbientProvider.

Convertisseurs de valeursValue Converters

Les convertisseurs de type ou les extensions de balisage devront peut-être connaître les informations ambiantes pour traiter les propriétés qui représentent des mappages de types indirects, tels que les propriétés qui spécifient des membres ou des types par noms de chaîne avec ou sans qualification.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. Dans ce scénario, AmbientAttribute n’est pas destinée à être utilisée directement pour la logique du code de convertisseur de valeur.In this scenario, AmbientAttribute is not intended to be used directly for value converter code logic. Au lieu de cela, le convertisseur de valeur doit s’appuyer sur le comportement de traitement du writer XAML, qui passera IAmbientProvider dans ses contextes de service à vos méthodes de convertisseur de valeur lorsqu’il est appelé.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.

Scénarios WPF pour AmbientAttributeWPF Scenarios for AmbientAttribute

  • Une propriété d’un Style (TargetType) peut qualifier les recherches de nom de propriété nécessaires pour rechercher les références de stockage pour les noms de propriété dans les valeurs de 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.

  • Tout le contenu d’une propriété Resources (éléments d’un ResourceDictionary) et du contenu du modèle doit pouvoir accéder à d’autres pairs en tant que valeurs.All content within a Resources property (items of a ResourceDictionary) as well as template content, should be able to access other peers as values. La déclaration de la propriété Resources entière comme ambiant appelle la logique qui l’active dans l’analyseur XAML WPF.Declaring the entire Resources property as ambient invokes logic that enables this in the WPF XAML parser.

Consultez ResourceDictionary pour obtenir un exemple de scénario de définition d' AmbientAttribute au niveau du type.See ResourceDictionary for an example of a scenario for setting AmbientAttribute at type level.

Constructeurs

AmbientAttribute()

Initialise une nouvelle instance de la classe AmbientAttribute.Initializes a new instance of the AmbientAttribute class.

Propriétés

TypeId

Lors de l'implémentation dans une classe dérivée, obtient un identificateur unique pour l'objet Attribute.When implemented in a derived class, gets a unique identifier for this Attribute.

(Hérité de Attribute)

Méthodes

Equals(Object)

Retourne une valeur qui indique si cette instance est égale à un objet spécifié.Returns a value that indicates whether this instance is equal to a specified object.

(Hérité de Attribute)
GetHashCode()

Retourne le code de hachage de cette instance.Returns the hash code for this instance.

(Hérité de Attribute)
GetType()

Obtient le Type de l'instance actuelle.Gets the Type of the current instance.

(Hérité de Object)
IsDefaultAttribute()

En cas de substitution dans une classe dérivée, indique si la valeur de cette instance est la valeur par défaut pour la classe dérivée.When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.

(Hérité de Attribute)
Match(Object)

En cas de substitution dans une classe dérivée, retourne une valeur indiquant si cette instance équivaut à un objet spécifié.When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.

(Hérité de Attribute)
MemberwiseClone()

Crée une copie superficielle du Object actuel.Creates a shallow copy of the current Object.

(Hérité de Object)
ToString()

Retourne une chaîne qui représente l'objet en cours.Returns a string that represents the current object.

(Hérité de Object)

Implémentations d’interfaces explicites

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

Mappe un jeu de noms avec un jeu correspondant d'identificateurs de dispatch.Maps a set of names to a corresponding set of dispatch identifiers.

(Hérité de Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Récupère les informations de type pour un objet, qui peuvent être utilisées pour obtenir les informations de type d'une interface.Retrieves the type information for an object, which can be used to get the type information for an interface.

(Hérité de Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Récupère le nombre d'interfaces d'informations de type fourni par un objet (0 ou 1).Retrieves the number of type information interfaces that an object provides (either 0 or 1).

(Hérité de Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Fournit l'accès aux propriétés et aux méthodes exposées par un objet.Provides access to properties and methods exposed by an object.

(Hérité de Attribute)

S’applique à

Voir aussi