Compartilhar via


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.

Consulte também

Outros recursos

Usando o reflexão Emit