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’attributs. 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 montre comment AttributeProviderAttribute marquer une DataSource propriété avec un type spécifique de IListSource. Pour obtenir une description 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 => _dataGridView1.DataSource;
set => _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 dans lequel une propriété est tapée de manière ciblé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 aucun endroit commun pour ajouter des métadonnées pour décrire les caractéristiques de la propriété. Chaque DataSource propriété dans .NET Framework doit avoir des métadonnées identiques pour les convertisseurs de types, les éditeurs de type 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 d’attributs pour la collection de descripteur de MemberDescriptor.Attributes propriété diffèrent. En règle générale, le descripteur de propriété collecte des attributs locaux, puis les fusionne avec des attributs du type de propriété. Dans ce cas, les attributs sont extraits du type retourné par le AttributeProviderAttributetype , et non du type de propriété réel. Cet attribut est utilisé pour DataGridView.DataSource pointer le type IListSourcespécifique de l’objet DataGridView.DataSource vers , et les métadonnées appropriées sont placées pour IListSource activer la liaison de données. Dans ce cas, 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 le AttributeProviderAttribute type ont 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 d’attributs fusionnés disponibles :
Attributs de propriété
Attributs du fournisseur d’attributs
Attributs de type de propriété
Constructeurs
| Nom | Description |
|---|---|
| AttributeProviderAttribute(String, String) |
Initialise une nouvelle instance de la AttributeProviderAttribute classe avec le nom de type et le nom de propriété donnés. |
| AttributeProviderAttribute(String) |
Initialise une nouvelle instance de la AttributeProviderAttribute classe avec le nom de type donné. |
| AttributeProviderAttribute(Type) |
Initialise une nouvelle instance de la AttributeProviderAttribute classe avec le type donné. |
Propriétés
| Nom | Description |
|---|---|
| PropertyName |
Obtient le nom de la propriété pour laquelle les attributs seront récupérés. |
| TypeId |
En cas d’implémentation dans une classe dérivée, obtient un identificateur unique pour cette Attribute. (Hérité de Attribute) |
| TypeName |
Obtient le nom de type qualifié d’assembly passé dans le constructeur. |
Méthodes
| Nom | Description |
|---|---|
| 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 pour cette instance. (Hérité de Attribute) |
| GetType() |
Obtient la 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 de la classe dérivée. (Hérité de Attribute) |
| Match(Object) |
En cas de substitution dans une classe dérivée, retourne une valeur qui indique si cette instance est égale à un objet spécifié. (Hérité de Attribute) |
| MemberwiseClone() |
Crée une copie superficielle du Objectactuel. (Hérité de Object) |
| ToString() |
Retourne une chaîne qui représente l’objet actuel. (Hérité de Object) |
Implémentations d’interfaces explicites
| Nom | Description |
|---|---|
| _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 d’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 méthodes exposées par un objet. (Hérité de Attribute) |