リフレクション出力によるフィールドの定義
フィールドは、TypeBuilder.DefineField メソッドを使用して、型メンバーとして定義されます。 DefineField メソッドでは、呼び出し元でフィールド名、フィールド型、およびフィールド属性を指定する必要があります。フィールド属性を指定するには、FieldAttributes 列挙型を使用します。 DefineField は FieldBuilder を返します。
FieldBuilder.SetOffset はフィールド レイアウトを定義します。 FieldBuilder.SetMarshal はフィールドのマーシャリング方法を指定します。 FieldBuilder.SetConstant はフィールドの既定値を定義します。
さらに、フィールドは、ポータブル実行可能 (PE) ファイルの .sdata セクションで定義されているデータも参照できます。 初期化済みデータを表すフィールドを定義するには、ModuleBuilder.DefineInitializedData を使用します。 初期化されていないデータを表すフィールドを定義するには、ModuleBuilder.DefineUninitializedData を使用します。
属性
静的フィールドを指定するには、FieldAttributes.Static 属性を使用します。
初期化できるが初期化後の書き込みはできないフィールドを指定するには、FieldAttributes.InitOnly 属性を使用します。
値がコンパイル時点の定数となるフィールドを指定するには、FieldAttributes.Literal 属性を使用します。
フィールドの参照範囲は、複数の属性によって決定します。 FieldAttributes 列挙型の説明を参照してください。