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
[<System.AttributeUsage(System.AttributeTargets.Property)>]
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 em todo o .NET Framework precisa de ter metadados idênticos para conversores de tipos, editores de tipos UI e outros serviços que requerem 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) |