Porady: dostarczanie opisów metadanych dotyczących danego składnika
Można podać metadane opisowe dotyczące składnika poprzez attributes.Atrybuty są wyspecjalizowane klasy, które są stosowane do elementów kodu.W czasie kompilacji atrybuty są emitowane w metadanych, które jest dostępne, common language runtime lub niestandardowych narzędzi i aplikacji za pomocą System.Reflection obszaru nazw.
Atrybuty są załączone do składnika poprzedzających składnikiem odwołanie do atrybutu i podając wszelkie odpowiednie parametry lub flagi.To wywołanie konstruktora jest umieszczana w nawiasy < > w języku Visual Basic i regularne nawiasów kwadratowych [] w języku C#.
Konwencji wszystkie klasy atrybutu end "Atrybutu". Na przykład, istnieją DescriptionAttribute, ObsoleteAttribute, i BrowsableAttribute klasy.Jednak kilka języków, które docelowe common language runtime, łącznie z języka Visual Basic i C# nie wymagają pełną nazwę atrybutu.Na przykład ObsoleteAttribute może być określonych w kodzie jako Obsolete.
Aby dołączyć istniejący atrybut do składnika
Określić atrybutów, które są wymagane dla składnika.
Atrybuty należy dołączyć do składnika.Uwaga, że należy użyć w pełni kwalifikowaną nazwę atrybutu albo dodać odpowiedni Imports (using) instrukcji.Poniższy przykład pokazuje, jak dołączyć DescriptionAttribute atrybut:
Imports System.ComponentModel <Description("This is a description string")> Public Class TheClass End Class
using System.ComponentModel; [Description("This is a description string")] public class TheClass { }
Atrybuty niestandardowe
Można również utworzyć własne atrybuty do użytku własne narzędzia niestandardowe lub aplikacje, przez dziedziczenie Attribute.Wszelkie niestandardowe właściwości lub metody wymagane przez aplikację można dodać do tej klasy podstawowej.
Aby utworzyć i zastosować atrybutu niestandardowego
Tworzenie klasy, która dziedziczy z Attribute.
Public Class WidgetAttribute Inherits System.Attribute End Class
public class WidgetAttribute: System.Attribute { }
Określić, które właściwości i metod, potrzebuje atrybut i napisać kod dla nich.Następujący przykład przedstawia sposób tworzenia WidgetType właściwość, która jest ustawiona w konstruktorze WidgetAttribute klasy.AttributeUsageAttribute Atrybut określa, jakie członkowie kodu można kierować atrybutu.
<AttributeUsage(System.AttributeTargets.Class)> Public Class _ WidgetAttribute Inherits System.Attribute Private mWidgetType as WidgetTypeEnum ' Creates a readonly property for the WidgetAttribute class. Public ReadOnly Property WidgetType as WidgetTypeEnum Get Return mWidgetType End Get End Property ' Creates a constructor that accepts a parameter and assigns the ' value of that parameter to the WidgetType property. Public Sub New(type as WidgetTypeEnum) MyBase.New() mWidgetType = type End Sub End Class
[AttributeUsage(System.AttributeTargets.Class)] public class WidgetAttribute: System.Attribute { private WidgetTypeEnum widgetType; // Creates a readonly property for the WidgetAttribute class. public WidgetTypeEnum WidgetType { get {return widgetType;} } public WidgetAttribute(WidgetTypeEnum type): base() { widgetType = type; } }
Stosuje się ten atrybut, tak jak inne atrybuty pewne stosuje wszelkie wymagane parametry.
<WidgetAttribute(WidgetTypeEnum.VerticalWidget)> _ Public Class WidgetFortyFive End Class
[WidgetAttribute(WidgetTypeEnum.VerticalWidget)] public class WidgetFortyFive { }
Zobacz też
Zadania
Porady: dostarczanie metadanych dla właściwości składników, metod i zdarzeń
Informacje
Koncepcje
Uzyskiwanie dostępu do atrybutów niestandardowych
Pobieranie informacji przechowywanych w atrybutach