Compartir por


AttributeProviderAttribute Clase

Definición

Habilita el redireccionamiento de atributos. Esta clase no puede heredarse.

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
Herencia
AttributeProviderAttribute
Atributos

Ejemplos

En el ejemplo de código siguiente se muestra cómo usar AttributeProviderAttribute para marcar una DataSource propiedad con un tipo específico de IListSource. Para obtener una lista de código completa, vea Cómo: Aplicar atributos en controles de Formularios 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

Comentarios

Hay algunos casos en el modelo de objetos de .NET Framework en los que una propiedad se escribe intencionadamente para ser imprecisa. Por ejemplo, la DataGridView.DataSource propiedad se escribe como object. El motivo de esto es que esta propiedad puede aceptar varios tipos de entrada. Desafortunadamente, esto no proporciona ningún lugar común para agregar metadatos para describir las características de la propiedad. Cada DataSource propiedad de .NET Framework debe tener metadatos idénticos para convertidores de tipos, editores de tipos de interfaz de usuario y otros servicios que requieren metadatos. Las AttributeProviderAttribute soluciones a esta situación.

Una vez que este atributo se coloca en una propiedad, las reglas para obtener atributos para la colección del descriptor de MemberDescriptor.Attributes propiedad difieren. Normalmente, el descriptor de propiedad recopila atributos locales y, a continuación, los combina con atributos del tipo de propiedad. En este caso, los atributos se toman del tipo devuelto por AttributeProviderAttribute, no del tipo de propiedad real. Este atributo se usa en DataGridView.DataSource para apuntar el DataGridView.DataSource tipo específico del objeto a IListSourcey los metadatos adecuados se colocan en IListSource para habilitar el enlace de datos. Al hacerlo, las partes externas pueden agregar fácilmente metadatos a todos los orígenes de datos.

Los atributos obtenidos de un tipo declarado en AttributeProviderAttribute tienen una prioridad entre los atributos del tipo de la propiedad y los atributos de la propiedad. En la lista siguiente, en orden de prioridad, se muestra el conjunto completo de atributos combinados disponibles:

  • Atributos de propiedad

  • Atributos del proveedor de atributos

  • Atributos de tipo de propiedad

Constructores

Nombre Description
AttributeProviderAttribute(String, String)

Inicializa una nueva instancia de la AttributeProviderAttribute clase con el nombre de tipo y el nombre de propiedad especificados.

AttributeProviderAttribute(String)

Inicializa una nueva instancia de la AttributeProviderAttribute clase con el nombre de tipo especificado.

AttributeProviderAttribute(Type)

Inicializa una nueva instancia de la AttributeProviderAttribute clase con el tipo especificado.

Propiedades

Nombre Description
PropertyName

Obtiene el nombre de la propiedad para la que se recuperarán los atributos.

TypeId

Cuando se implementa en una clase derivada, obtiene un identificador único para este Attribute.

(Heredado de Attribute)
TypeName

Obtiene el nombre de tipo calificado del ensamblado pasado al constructor.

Métodos

Nombre Description
Equals(Object)

Devuelve un valor que indica si esta instancia es igual a un objeto especificado.

(Heredado de Attribute)
GetHashCode()

Devuelve el código hash de esta instancia.

(Heredado de Attribute)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
IsDefaultAttribute()

Cuando se reemplaza en una clase derivada, indica si el valor de esta instancia es el valor predeterminado de la clase derivada.

(Heredado de Attribute)
Match(Object)

Cuando se reemplaza en una clase derivada, devuelve un valor que indica si esta instancia es igual a un objeto especificado.

(Heredado de Attribute)
MemberwiseClone()

Crea una copia superficial del Objectactual.

(Heredado de Object)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Implementaciones de interfaz explícitas

Nombre Description
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Asigna un conjunto de nombres a un conjunto correspondiente de identificadores de envío.

(Heredado de Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Recupera la información de tipo de un objeto, que se puede usar para obtener la información de tipo de una interfaz.

(Heredado de Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Recupera el número de interfaces de información de tipo que proporciona un objeto (0 ó 1).

(Heredado de Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Proporciona acceso a propiedades y métodos expuestos por un objeto .

(Heredado de Attribute)

Se aplica a

Consulte también