AttributeProviderAttribute Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Habilita o redirecionamento de atributo. Essa classe não pode ser herdada.
public ref class AttributeProviderAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Property)]
public class AttributeProviderAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Property)>]
type AttributeProviderAttribute = class
inherit Attribute
Public Class AttributeProviderAttribute
Inherits Attribute
- Herança
- Atributos
Exemplos
O exemplo de código a seguir demonstra o uso AttributeProviderAttribute para marcar uma DataSource propriedade com um tipo específico de IListSource. Para obter uma listagem de código completa, consulte How to: Apply Attributes in Windows Forms Controls.
[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
Comentários
Há alguns casos no modelo de objeto .NET Framework em que uma propriedade é tipada propositalmente como vaga. Por exemplo, a DataGridView.DataSource propriedade é digitada como object. O motivo disso é que essa propriedade pode aceitar vários tipos de entrada. Infelizmente, isso não fornece um local comum para adicionar metadados para descrever as características da propriedade. Cada propriedade DataSource em todo .NET Framework precisa ter metadados idênticos para conversores de tipo, editores de tipo de interface do usuário e outros serviços que exigem metadados. Os AttributeProviderAttribute remédios dessa situação.
Depois que esse atributo é colocado em uma propriedade, as regras para obter atributos para a coleção do descritor de MemberDescriptor.Attributes propriedade diferem. Normalmente, o descritor de propriedade coleta atributos locais e os mescla com atributos do tipo de propriedade. Nesse caso, os atributos são retirados do tipo retornado do AttributeProviderAttributetipo , não do tipo de propriedade real. Esse atributo é usado DataGridView.DataSource para apontar o DataGridView.DataSource tipo específico do objeto e IListSourceos metadados apropriados são colocados IListSource para habilitar a associação de dados. Ao fazer isso, as partes externas podem facilmente adicionar metadados a todas as fontes de dados.
Os atributos obtidos de um tipo declarado no AttributeProviderAttribute têm uma prioridade entre os atributos do tipo da propriedade e os atributos na propriedade. A lista a seguir, em ordem de prioridade, mostra o conjunto completo de atributos mesclados disponíveis:
Atributos de propriedade
Atributos do provedor de atributos
Atributos de tipo de propriedade
Construtores
| Nome | Description |
|---|---|
| AttributeProviderAttribute(String, String) |
Inicializa uma nova instância da AttributeProviderAttribute classe com o nome de tipo e o nome da propriedade fornecidos. |
| AttributeProviderAttribute(String) |
Inicializa uma nova instância da AttributeProviderAttribute classe com o nome de tipo fornecido. |
| AttributeProviderAttribute(Type) |
Inicializa uma nova instância da AttributeProviderAttribute classe com o tipo fornecido. |
Propriedades
| Nome | Description |
|---|---|
| PropertyName |
Obtém o nome da propriedade para a qual os atributos serão recuperados. |
| TypeId |
Quando implementado em uma classe derivada, obtém um identificador exclusivo para esse Attribute. (Herdado de Attribute) |
| TypeName |
Obtém o nome de tipo qualificado do assembly passado para o construtor. |
Métodos
| Nome | Description |
|---|---|
| Equals(Object) |
Retorna um valor que indica se essa instância é igual a um objeto especificado. (Herdado de Attribute) |
| GetHashCode() |
Retorna o código hash dessa instância. (Herdado de Attribute) |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| IsDefaultAttribute() |
Quando substituído em uma classe derivada, indica se o valor dessa instância é o valor padrão para a classe derivada. (Herdado de Attribute) |
| Match(Object) |
Quando substituído em uma classe derivada, retorna um valor que indica se essa instância é igual a um objeto especificado. (Herdado de Attribute) |
| MemberwiseClone() |
Cria uma cópia superficial do Objectatual. (Herdado de Object) |
| ToString() |
Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object) |
Implantações explícitas de interface
| Nome | Description |
|---|---|
| _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Mapeia um conjunto de nomes para um conjunto correspondente de identificadores de expedição. (Herdado de Attribute) |
| _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Recupera as informações de tipo de um objeto, que podem ser usadas para obter as informações de tipo de uma interface. (Herdado de Attribute) |
| _Attribute.GetTypeInfoCount(UInt32) |
Retorna o número de interfaces de informações do tipo que um objeto fornece (0 ou 1). (Herdado de Attribute) |
| _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Fornece acesso a propriedades e métodos expostos por um objeto. (Herdado de Attribute) |