Share via


Definir um construtor com reflexão emitir

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 language runtime automaticamente define um construtor padrão para uma classe, se o chamador não fazê-lo.

Atributos

  • O runtime define o atributo MethodAttributes.SpecialName para o construtor.

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

Problemas conhecidos

  • Embora ConstructorBuilder é derivada de ConstructorInfo, alguns dos métodos abstratos definidos a ConstructorInfo classe não são totalmente implementado em ConstructorBuilder. Essas 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 a reflexão emitir.