Compartir a través de


Definir un constructor con Reflection Emit

Actualización: noviembre 2007

Un constructor se define mediante el método TypeBuilder.DefineConstructor. DefineConstructor devuelve un objeto ConstructorBuilder. DefineConstructor requiere que el llamador especifique los atributos del constructor con la enumeración MethodAttributes.

El constructor predeterminado de una clase se define mediante el método TypeBuilder.DefineDefaultConstructor. DefineDefaultConstructor devuelve un objeto ConstructorBuilder. El constructor predeterminado simplemente llama al constructor de la clase principal. Common Language Runtime define automáticamente un constructor predeterminado para una clase si el llamador no lo hace.

Atributos

  • El motor en tiempo de ejecución establece el atributo MethodAttributes.SpecialName para el constructor.

  • Los constructores privados se especifican mediante el atributo MethodAttributes.Private. Para obtener información sobre otros atributos de visibilidad, vea la descripción de la enumeración MethodAttributes.

Problemas conocidos

  • Aunque ConstructorBuilder se deriva de ConstructorInfo, algunos de los métodos abstractos definidos en la clase ConstructorInfo no están completamente implementados en ConstructorBuilder. Estos métodos ConstructorBuilder producen la excepción NotSupportedException. Para obtener la funcionalidad deseada, se puede recuperar el tipo que contiene el constructor y reflejarlo en él. Por ejemplo, el método ConstructorBuilder.Invoke no está totalmente implementado.

  • Actualmente, no se admiten modificadores personalizados.

Vea también

Otros recursos

Utilizar Reflection Emit