Definindo um campo com reflexão Emit
Um campo é definido sistema autônomo um membro de tipo usando o TypeBuilder.DefineField método. The DefineField método requer que o chamador especificar o nome de campo, o tipo de campo e os atributos de campo (usando o FieldAttributes enumeração). DefineField retorna um FieldBuilder.
FieldBuilder.SetOffset define o layout de campo.FieldBuilder.SetMarshal define como um campo é empacotado.FieldBuilder.SetConstant define o valor padrão de um campo.
Um campo também pode fazer referência a dados na seção .sdata do portáteis arquivo executável (PE).Campos que representam dados inicializados são definidos usando ModuleBuilder.DefineInitializedData. Campos que representam dados não inicializados são definidos usando ModuleBuilder.DefineUninitializedData.
Atributos
Campos estático são especificados usando o FieldAttributes.estático atributo.
Campos que podem ser inicializados, mas não subseqüentemente gravados são especificados usando o FieldAttributes.InitOnly atributo.
Campos que são constantes de time de compilar são especificados usando o FieldAttributes.Literal atributo.
Há vários atributos que determinam a visibilidade do campo.Consulte a descrição do FieldAttributes enumeração.