ProvidePropertyAttribute Classe

Definizione

Specifica il nome della proprietà che un implementatore di IExtenderProvider offre ad altri componenti. La classe non può essere ereditata.

public ref class ProvidePropertyAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=true)]
public sealed class ProvidePropertyAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=true)>]
type ProvidePropertyAttribute = class
    inherit Attribute
Public NotInheritable Class ProvidePropertyAttribute
Inherits Attribute
Ereditarietà
ProvidePropertyAttribute
Attributi

Esempio

Nell'esempio seguente viene contrassegnato MyClass un ProvidePropertyAttribute oggetto che indica al compilatore di creare una proprietà denominata MyProperty dai GetMyProperty metodi e SetMyProperty .

[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;
    // Provides the Get portion of MyProperty. 
    public CultureInfo GetMyProperty(Control myControl) =>
        // Insert code here.
        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) => 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

    ' 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

Commenti

Quando si contrassegna una classe con questo attributo, si indica al generatore di codice di creare una proprietà extender con il nome specificato. La classe contrassegnata deve implementare IExtenderProvider. Di conseguenza, la nuova proprietà può essere usata da altri componenti in un contenitore.

All'interno della classe contrassegnata, è necessario implementare Get<i metodi name> e Set<name> . Ad esempio, se si contrassegna una classe con [ProvideProperty("PropertyName")], è necessario implementare GetPropertyName i metodi e SetPropertyName . Per specificare che la nuova proprietà sarà una proprietà extender, è necessario implementare da IExtenderProvider, è necessario implementare anche un CanExtend metodo .

Per altre informazioni, vedere Attributi.

Costruttori

Nome Descrizione
ProvidePropertyAttribute(String, String)

Inizializza una nuova istanza della ProvidePropertyAttribute classe con il nome della proprietà e il tipo del relativo ricevitore.

ProvidePropertyAttribute(String, Type)

Inizializza una nuova istanza della ProvidePropertyAttribute classe con il nome della proprietà e il relativo Typeoggetto .

Proprietà

Nome Descrizione
PropertyName

Ottiene il nome di una proprietà fornita da questa classe.

ReceiverTypeName

Ottiene il nome del tipo di dati che questa proprietà può estendere.

TypeId

Ottiene un identificatore univoco per questo attributo.

Metodi

Nome Descrizione
Equals(Object)

Restituisce un valore che indica se il valore dell'oggetto specificato è uguale all'oggetto corrente ProvidePropertyAttribute.

GetHashCode()

Restituisce il codice hash per questa istanza.

GetType()

Ottiene il Type dell'istanza corrente.

(Ereditato da Object)
IsDefaultAttribute()

Quando sottoposto a override in una classe derivata, indica se il valore di questa istanza è il valore predefinito per la classe derivata.

(Ereditato da Attribute)
Match(Object)

Quando sottoposto a override in una classe derivata, restituisce un valore che indica se questa istanza è uguale a un oggetto specificato.

(Ereditato da Attribute)
MemberwiseClone()

Crea una copia superficiale del Objectcorrente.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Implementazioni dell'interfaccia esplicita

Nome Descrizione
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Esegue il mapping di un set di nomi a un set corrispondente di identificatori dispatch.

(Ereditato da Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Recupera le informazioni sul tipo per un oggetto, che può essere utilizzato per ottenere le informazioni sul tipo per un'interfaccia.

(Ereditato da Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Recupera il numero di interfacce di informazioni sul tipo fornite da un oggetto (0 o 1).

(Ereditato da Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Fornisce l'accesso alle proprietà e ai metodi esposti da un oggetto .

(Ereditato da Attribute)

Si applica a