Udostępnij za pośrednictwem


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

  1. Określić atrybutów, które są wymagane dla składnika.

  2. 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

  1. Tworzenie klasy, która dziedziczy z Attribute.

    Public Class WidgetAttribute
       Inherits System.Attribute
    End Class
    
    public class WidgetAttribute: System.Attribute
    {
    }
    
  2. 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;
          }
    }
    
  3. 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

Attribute

Koncepcje

Uzyskiwanie dostępu do atrybutów niestandardowych

Pobieranie informacji przechowywanych w atrybutach

Inne zasoby

Pomoc dla użytkownika dotycząca składników