Exportieren (0) Drucken
Alle erweitern

ProvidePropertyAttribute-Klasse

Gibt den Namen der Eigenschaft an, die anderen Komponenten von einer Implementierung von IExtenderProvider angeboten wird. Diese Klasse kann nicht geerbt werden.

Namespace: System.ComponentModel
Assembly: System (in system.dll)

[AttributeUsageAttribute(AttributeTargets.Class, AllowMultiple=true)] 
public sealed class ProvidePropertyAttribute : Attribute
/** @attribute AttributeUsageAttribute(AttributeTargets.Class, AllowMultiple=true) */ 
public final class ProvidePropertyAttribute extends Attribute
AttributeUsageAttribute(AttributeTargets.Class, AllowMultiple=true) 
public final class ProvidePropertyAttribute extends Attribute

Durch Markieren einer Klasse mit diesem Attribut weisen Sie den Codegenerator an, eine Extendereigenschaft mit dem angegebenen Namen zu erstellen. Die markierte Klasse muss IExtenderProvider implementieren. Infolgedessen kann die neue Eigenschaft von anderen Komponenten in einem Container verwendet werden.

Innerhalb der markierten Klasse müssen Sie die Get<Name>-Methode und die Set<Name>-Methode implementieren. Wenn Sie beispielsweise eine Klasse mit [ProvideProperty("PropertyName")] markieren, müssen Sie die GetPropertyName-Methode und die SetPropertyName-Methode implementieren. Um anzugeben, dass es sich bei der neuen Eigenschaft um eine Extendereigenschaft handelt, müssen Sie IExtenderProvider sowie eine CanExtend-Methode implementieren.

Weitere Informationen finden Sie unter Übersicht über Attribute und Erweitern von Metadaten mithilfe von Attributen.

Im folgenden Beispiel wird MyClass mit einem ProvidePropertyAttribute markiert, das den Compiler anweist, die Eigenschaft MyProperty mithilfe der GetMyProperty-Methode und der SetMyProperty-Methode zu erstellen.

[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.
 }

public class MyClass implements IExtenderProvider
{
    protected CultureInfo ciMine = null;

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

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

    /*  When you inherit from IExtenderProvider, you must implement the 
     *   CanExtend method. 
     */
    public boolean CanExtend(Object target)
    {
        return target instanceof Control;
    } //CanExtend
    
    // Insert additional code here.

} //MyClass 

System.Object
   System.Attribute
    System.ComponentModel.ProvidePropertyAttribute

Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0
Anzeigen:
© 2015 Microsoft