ProvidePropertyAttribute Class

Definición

Especifica el nombre de la propiedad que un implementador de IExtenderProvider ofrece a otros componentes. Specifies the name of the property that an implementer of IExtenderProvider offers to other components. Esta clase no se puede heredar This class cannot be inherited

[System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=true)]
public sealed class ProvidePropertyAttribute : Attribute
Herencia
ProvidePropertyAttribute
Atributos

Ejemplos

El ejemplo siguiente se generaliza MyClass con un ProvidePropertyAttribute que indica al compilador que cree una propiedad denominada MyProperty desde el GetMyProperty y SetMyProperty métodos.The following example marks MyClass with a ProvidePropertyAttribute that tells the compiler to create a property called MyProperty from the GetMyProperty and SetMyProperty methods.

[ProvideProperty("MyProperty",Control::typeid)]
public ref class MyClass: public IExtenderProvider
{
protected:
   CultureInfo^ ciMine;

public:
   // Provides the Get portion of MyProperty. 
   CultureInfo^ GetMyProperty( Control^ myControl )
   {
      // Insert code here.
      return ciMine;
   }

   // Provides the Set portion of MyProperty.
   void SetMyProperty( Control^ myControl, String^ value )
   {
      // Insert code here.
   }

   /* When you inherit from IExtenderProvider, you must implement the 
        * CanExtend method. */
   virtual bool CanExtend( Object^ target )
   {
      return dynamic_cast<Control^>(target) != nullptr;
   }
   // Insert additional code here.
};
[ProvideProperty("MyProperty", typeof(Control))]
public class MyClass : IExtenderProvider {
    protected CultureInfo ciMine = null;
    // Provides the Get portion of MyProperty. 
    public CultureInfo GetMyProperty(Control myControl) {
        // Insert code here.
        return ciMine;
    }
    
    // Provides the Set portion of MyProperty.
    public void SetMyProperty(Control myControl, string value) {
        // Insert code here.
    }
    
    /* When you inherit from IExtenderProvider, you must implement the 
     * CanExtend method. */
    public bool CanExtend(Object target) {
        return(target is Control);
    }
    
    // Insert additional code here.
 }
<ProvideProperty("MyProperty", GetType(Control))> _
Public Class SampleClass
    Implements IExtenderProvider
    Protected ciMine As CultureInfo = Nothing

    ' Provides the Get portion of MyProperty. 
    Public Function GetMyProperty(myControl As Control) As CultureInfo
        ' Insert code here.
        Return ciMine
    End Function 'GetMyProperty

    ' Provides the Set portion of MyProperty.
    Public Sub SetMyProperty(myControl As Control, value As String)
        ' Insert code here.
    End Sub 'SetMyProperty

    ' When you inherit from IExtenderProvider, you must implement the 
    ' CanExtend method. 
    Public Function CanExtend(target As [Object]) As Boolean Implements IExtenderProvider.CanExtend
        Return TypeOf target Is Control
    End Function 'CanExtend

    ' Insert additional code here.

End Class

Comentarios

Al marcar una clase con este atributo, indica el generador de código para crear una propiedad extensora con el nombre proporcionado.When you mark a class with this attribute, you tell the code generator to create an extender property with the name you provide. Debe implementar la clase marcada IExtenderProvider.The marked class must implement IExtenderProvider. Como resultado, la nueva propiedad puede usarse por otros componentes de un contenedor.As a result, the new property can be used by other components in a container.

Dentro de la clase marcada, se debe implementar Get <nombre > y Set <nombre > métodos.Within the marked class, you must implement Get <name> and Set <name> methods. Por ejemplo, si marca una clase con [ProvideProperty("PropertyName")], debe implementar GetPropertyName y SetPropertyName métodos.For example, if you mark a class with [ProvideProperty("PropertyName")], you must implement GetPropertyName and SetPropertyName methods. Para especificar que la nueva propiedad sea una propiedad extensora, debe implementar desde IExtenderProvider, también debe implementar un CanExtend método.To specify that the new property will be an extender property, you must implement from IExtenderProvider, you must also implement a CanExtend method.

Para obtener más información, consulte Attributes (Atributos).For more information, see Attributes.

Constructores

ProvidePropertyAttribute(String, String)

Inicializa una nueva instancia de la clase ProvidePropertyAttribute con el nombre de la propiedad y del tipo del receptor correspondiente. Initializes a new instance of the ProvidePropertyAttribute class with the name of the property and the type of its receiver.

ProvidePropertyAttribute(String, Type)

Inicializa una nueva instancia de la clase ProvidePropertyAttribute con el nombre de la propiedad y el Type correspondiente. Initializes a new instance of the ProvidePropertyAttribute class with the name of the property and its Type.

Propiedades

PropertyName

Obtiene el nombre de una propiedad proporcionada por esta clase. Gets the name of a property that this class provides.

ReceiverTypeName

Obtiene el nombre del tipo de datos que puede extender la propiedad. Gets the name of the data type this property can extend.

TypeId

Obtiene un identificador único para este atributo. Gets a unique identifier for this attribute.

Métodos

Equals(Object)

Devuelve un valor que indica si el valor del objeto especificado es igual al atributo ProvidePropertyAttribute actual. Returns whether the value of the given object is equal to the current ProvidePropertyAttribute.

GetHashCode()

Devuelve el código hash de esta instancia. Returns the hash code for this instance.

GetType()

Obtiene el Type de la instancia actual. Gets the Type of the current instance.

(Inherited from Object)
IsDefaultAttribute()

Si se reemplaza en una clase derivada, indica si el valor de esta instancia es el valor predeterminado de la clase derivada. When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.

(Inherited from Attribute)
Match(Object)

Cuando se invalida en una clase derivada, devuelve un valor que indica si esta instancia es igual a un objeto especificado. When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.

(Inherited from Attribute)
MemberwiseClone()

Crea una copia superficial del Object actual. Creates a shallow copy of the current Object.

(Inherited from Object)
ToString()

Devuelve una cadena que representa el objeto actual. Returns a string that represents the current object.

(Inherited from 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. Maps a set of names to a corresponding set of dispatch identifiers.

(Inherited from 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. Retrieves the type information for an object, which can be used to get the type information for an interface.

(Inherited from Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Recupera el número de interfaces de información de tipo que proporciona un objeto (0 ó 1). Retrieves the number of type information interfaces that an object provides (either 0 or 1).

(Inherited from Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Proporciona acceso a las propiedades y los métodos expuestos por un objeto. Provides access to properties and methods exposed by an object.

(Inherited from Attribute)

Se aplica a