Partilhar via


Definir um construtor com reflexão Emit

Um construtor é definido usando o TypeBuilder.DefineConstructor método. DefineConstructor retorna um ConstructorBuilder. DefineConstructor requer que o chamador especificar os atributos de construtor usando o MethodAttributes enumeração.

O construtor padrão para uma classe é definido usando o TypeBuilder.DefineDefaultConstructor método. DefineDefaultConstructor retorna um ConstructorBuilder.O construtor padrão simplesmente chama o construtor da classe pai.O common linguagem tempo de execução automaticamente define um construtor padrão para uma classe, se o chamador não fizer isso.

Atributos

  • O tempo de execução define o atributo MethodAttributes.SpecialName para o construtor.

  • Construtores particulares são especificados usando o MethodAttributes.particular atributo.Para obter outros atributos de visibilidade, consulte a descrição do MethodAttributes enumeração.

Problemas conhecidos

  • Embora ConstructorBuilder é derivado de ConstructorInfo, alguns dos métodos abstratos definidos na ConstructorInfo classe não são totalmente implementado ConstructorBuilder.Esses ConstructorBuilder métodos lançam o NotSupportedException. A funcionalidade desejada pode ser obtida por recuperar o tipo que contém o construtor e refletindo nele.Por exemplo o ConstructorBuilder.Invoke método não é totalmente implementado.

  • Modificadores personalizados não são suportados no momento.

Consulte também

Outros recursos

Usando o reflexão Emit