AttributeProviderAttribute Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Active la redirection d’attribut. Cette classe ne peut pas être héritée.
public ref class AttributeProviderAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Property)]
public class AttributeProviderAttribute : Attribute
public class AttributeProviderAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Property)>]
type AttributeProviderAttribute = class
inherit Attribute
type AttributeProviderAttribute = class
inherit Attribute
Public Class AttributeProviderAttribute
Inherits Attribute
- Héritage
- Attributs
Exemples
L’exemple de code suivant illustre l’utilisation AttributeProviderAttribute de pour marquer une DataSource
propriété avec un type spécifique de IListSource. Pour obtenir la liste complète du code, consultez Guide pratique pour appliquer des attributs dans les contrôles Windows Forms.
[Category("Data")]
[Description("Indicates the source of data for the control.")]
[RefreshProperties(RefreshProperties.Repaint)]
[AttributeProvider(typeof(IListSource))]
public object DataSource
{
get
{
return this.dataGridView1.DataSource;
}
set
{
this.dataGridView1.DataSource = value;
}
}
<Category("Data"), _
Description("Indicates the source of data for the control."), _
RefreshProperties(RefreshProperties.Repaint), _
AttributeProvider(GetType(IListSource))> _
Public Property DataSource() As Object
Get
Return Me.dataGridView1.DataSource
End Get
Set(ByVal value As Object)
Me.dataGridView1.DataSource = value
End Set
End Property
Remarques
Il existe quelques cas dans le modèle objet .NET Framework où une propriété est volontairement typée pour être vague. Par exemple, la DataGridView.DataSource propriété est typée en tant que object
. La raison en est que cette propriété peut accepter plusieurs types d’entrée. Malheureusement, cela ne fournit pas d’emplacement commun pour ajouter des métadonnées pour décrire les caractéristiques de la propriété. Chaque DataSource
propriété du .NET Framework doit avoir des métadonnées identiques pour les convertisseurs de types, les éditeurs de types d’interface utilisateur et d’autres services qui nécessitent des métadonnées. Les AttributeProviderAttribute remèdes à cette situation.
Une fois cet attribut placé sur une propriété, les règles d’obtention des attributs pour la collection du descripteur de MemberDescriptor.Attributes propriété diffèrent. En règle générale, le descripteur de propriété collecte les attributs locaux, puis les fusionne avec les attributs du type de propriété. Dans ce cas, les attributs sont extraits du type retourné à partir de , AttributeProviderAttributeet non du type de propriété réel. Cet attribut est utilisé sur DataGridView.DataSource pour pointer le type spécifique de l’objet DataGridView.DataSource vers IListSource, et les métadonnées appropriées sont placées sur IListSource pour activer la liaison de données. Ce faisant, les parties externes peuvent facilement ajouter des métadonnées à toutes les sources de données.
Les attributs obtenus à partir d’un type déclaré dans ont AttributeProviderAttribute une priorité entre les attributs du type de la propriété et les attributs de la propriété. La liste suivante, dans l’ordre de priorité, affiche l’ensemble complet des attributs fusionnés disponibles :
Attributs de propriété
Attributs du fournisseur d’attributs
Attributs de type de propriété
Constructeurs
AttributeProviderAttribute(String) |
Initialise une nouvelle instance de la classe AttributeProviderAttribute à l'aide du nom de type donné. |
AttributeProviderAttribute(String, String) |
Initialise une nouvelle instance de la classe AttributeProviderAttribute avec le nom de type et le nom de propriété donnés. |
AttributeProviderAttribute(Type) |
Initialise une nouvelle instance de la classe AttributeProviderAttribute à l'aide du type donné. |
Propriétés
PropertyName |
Obtient le nom de la propriété pour laquelle les attributs seront récupérés. |
TypeId |
Lors de l'implémentation dans une classe dérivée, obtient un identificateur unique pour l'objet Attribute. (Hérité de Attribute) |
TypeName |
Obtient le nom de type qualifié de l'assembly passé dans le constructeur. |
Méthodes
Equals(Object) |
Retourne une valeur qui indique si cette instance est égale à un objet spécifié. (Hérité de Attribute) |
GetHashCode() |
Retourne le code de hachage de cette instance. (Hérité de Attribute) |
GetType() |
Obtient le Type de l'instance actuelle. (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. (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é. (Hérité de Attribute) |
MemberwiseClone() |
Crée une copie superficielle du Object actuel. (Hérité de Object) |
ToString() |
Retourne une chaîne qui représente l'objet actuel. (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. (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. (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). (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. (Hérité de Attribute) |