AttributeProviderAttribute Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Permite redirecionar atributos. Esta classe não pode ser herdada.
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
- Herança
- Atributos
Exemplos
O exemplo de código seguinte demonstra a utilização AttributeProviderAttribute de marcar uma DataSource propriedade com um tipo específico de IListSource. Para uma listagem completa do código, veja Como: Aplicar Atributos em Controlos 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
Observações
Existem alguns casos no modelo de objetos .NET Framework em que uma propriedade é propositadamente tipada para ser vaga. Por exemplo, a DataGridView.DataSource propriedade é tipada como object. A razão para isto é que esta propriedade pode aceitar vários tipos de entrada. Infelizmente, isto não oferece um local comum para adicionar metadados que descrevam as características da propriedade. Cada propriedade DataSource ao longo do .NET Framework precisa de ter metadados idênticos para conversores de tipos, editores de tipos UI e outros serviços que exijam metadados. A solução AttributeProviderAttribute resolve esta situação.
Uma vez que este atributo é colocado numa propriedade, as regras para obter atributos para a coleção do MemberDescriptor.Attributes descritor de propriedade diferem. Normalmente, o descritor de propriedade recolhe atributos locais e depois funde-os com atributos do tipo de propriedade. Neste caso, os atributos são retirados do tipo devolvido do AttributeProviderAttribute, e não do tipo de propriedade real. Este atributo é usado para DataGridView.DataSource apontar o DataGridView.DataSource tipo específico do objeto para IListSource, e os metadados apropriados são colocados para IListSource permitir a ligação de dados. Ao fazê-lo, partes externas podem facilmente adicionar metadados a todas as fontes de dados.
Os atributos obtidos de um tipo declarado em têm AttributeProviderAttribute uma prioridade entre os atributos do tipo da propriedade e os atributos da propriedade. A lista seguinte, por ordem de prioridade, mostra o conjunto completo de atributos fundidos disponíveis:
Atributos da Propriedade
Atributos do Fornecedor de Atributos
Atributos de Tipo de Propriedade
Construtores
| Name | Description |
|---|---|
| AttributeProviderAttribute(String, String) |
Inicializa uma nova instância da AttributeProviderAttribute classe com o nome do tipo e do nome da propriedade. |
| AttributeProviderAttribute(String) |
Inicializa uma nova instância da AttributeProviderAttribute classe com o nome do tipo dado. |
| AttributeProviderAttribute(Type) |
Inicializa uma nova instância da AttributeProviderAttribute classe com o tipo dado. |
Propriedades
| Name | Description |
|---|---|
| PropertyName |
Obtém o nome da propriedade para a qual os atributos serão recuperados. |
| TypeId |
Quando implementado numa classe derivada, obtém um identificador único para esta Attribute. (Herdado de Attribute) |
| TypeName |
Faz com que o nome do tipo qualificado para montagem seja passado para o construtor. |
Métodos
| Name | Description |
|---|---|
| Equals(Object) |
Devolve um valor que indica se esta instância é igual a um objeto especificado. (Herdado de Attribute) |
| GetHashCode() |
Devolve o código de hash para esta instância. (Herdado de Attribute) |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| IsDefaultAttribute() |
Quando sobrescrito numa classe derivada, indica se o valor desta instância é o valor padrão para a classe derivada. (Herdado de Attribute) |
| Match(Object) |
Quando sobrescrito numa classe derivada, devolve um valor que indica se esta instância é igual a um objeto especificado. (Herdado de Attribute) |
| MemberwiseClone() |
Cria uma cópia superficial do atual Object. (Herdado de Object) |
| ToString() |
Devolve uma cadeia que representa o objeto atual. (Herdado de Object) |
Implementações de Interface Explícita
| Name | Description |
|---|---|
| _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Mapeia um conjunto de nomes para um conjunto correspondente de identificadores de despacho. (Herdado de Attribute) |
| _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Recupera a informação de tipo de um objeto, que pode ser usada para obter a informação de tipo para uma interface. (Herdado de Attribute) |
| _Attribute.GetTypeInfoCount(UInt32) |
Recupera o número de interfaces de informações de tipo que um objeto fornece (0 ou 1). (Herdado de Attribute) |
| _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Proporciona acesso a propriedades e métodos expostos por um objeto. (Herdado de Attribute) |