Definieren eines Felds mittels Reflektionsausgabe

Aktualisiert: November 2007

Ein Feld wird mithilfe der TypeBuilder.DefineField-Methode als Typmember definiert. Die DefineField-Methode erfordert, dass der Aufrufer den Feldnamen, den Feldtyp und die Feldattribute (mithilfe der FieldAttributes-Enumeration) angibt. DefineField gibt FieldBuilder zurück.

FieldBuilder.SetOffset definiert das Feldlayout. FieldBuilder.SetMarshal definiert, wie ein Feld gemarshallt wird. FieldBuilder.SetConstant definiert, wie der Standardwert eines Felds definiert wird.

Ein Feld kann auch auf den .sdata-Abschnitt der PE (Portable Executable)-Datei verweisen. Felder, die initialisierte Daten darstellen, werden mithilfe von ModuleBuilder.DefineInitializedData definiert. Felder, die nicht initialisierte Daten darstellen, werden mithilfe von ModuleBuilder.DefineUninitializedData definiert.

Attribute

  • Statische Felder werden über das FieldAttributes.Static-Attribut angegeben.

  • Felder, die zwar initialisiert werden können, aber in die anschließend nicht geschrieben werden kann, werden über das FieldAttributes.InitOnly-Attribut angegeben.

  • Felder, die Kompilierungszeitkonstanten darstellen, werden über das FieldAttributes.Literal-Attribut angegeben.

  • Es gibt verschiedene Attribute zur Festlegung der Feldsichtbarkeit. Siehe dazu die Beschreibung der FieldAttributes-Enumeration.

Siehe auch

Weitere Ressourcen

Verwenden der Reflektionsausgabe