AttributeProviderAttribute Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Habilita la redirección del atributo. 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
- 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 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
{
return this.dataGridView1.DataSource;
}
set
{
this.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 el 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 MemberDescriptor.Attributes descriptor de 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 de 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 entidades 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
AttributeProviderAttribute(String) |
Inicializa una nueva instancia de la clase AttributeProviderAttribute con el nombre de tipo especificado. |
AttributeProviderAttribute(String, String) |
Inicializa una nueva instancia de la clase AttributeProviderAttribute con el nombre de tipo y el nombre de propiedad especificados. |
AttributeProviderAttribute(Type) |
Inicializa una nueva instancia de la clase AttributeProviderAttribute con el tipo especificado. |
Propiedades
PropertyName |
Obtiene el nombre de la propiedad cuyos atributos se van a recuperar. |
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 con el nombre de ensamblado que se ha pasado al constructor. |
Métodos
Equals(Object) |
Devuelve un valor que indica si esta instancia es igual que 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() |
Si 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 invalida 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 Object actual. (Heredado de Object) |
ToString() |
Devuelve una cadena que representa el objeto actual. (Heredado de Object) |
Implementaciones de interfaz explícitas
_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) |
Obtiene la información de tipos de un objeto, que puede utilizarse para obtener la información de tipos 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 las propiedades y los métodos expuestos por un objeto. (Heredado de Attribute) |