Home   Cover Cover Cover Cover
 

Metadaten

Beispiel "Attribute"

Die CLR erlaubt es, bestimmte Eigenschaften von Programmelementen mittels Attributen in den Metadaten sichtbar zu machen, so dass andere Programme oder Werkzeuge davon Gebrauch machen können.
Im Beispiel definieren wir eine Klasse OurBook, die mit dem System.SerializableAttribute aus der .NET-Klassenbibliothek als serialisierbar gekennzeichnet ist. Die Klasse enthält ein Feld ourPrice, das mit einem selbst definierten Attribut TooLowAttribute markiert ist.

Attributes.cs
using System;

[Serializable]
class OurBook {

  [TooLow]
  int ourPrice;

}

class TooLowAttribute : Attribute { }

Mit dem IL-Disassembler (ildasm.exe) können wir nicht nur den erzeugten CIL-Code, sondern auch die Metadaten der Klasse OurBook und ihrer Komponenten betrachten.





Dabei sehen wir, dass es für manche Attribute aus der Klassenbibliothek vordefinierte Schlüsselwörter gibt (serializable), während benutzerdefinierte Attribute in der Regel als Konstruktoraufruf hinter dem Schlüsselwort .custom angegeben werden.