Condividi tramite


Definizione di un costruttore tramite reflection emit

Un costruttore viene definito mediante il metodo TypeBuilder.DefineConstructor. DefineConstructor restituisce un oggetto ConstructorBuilder. DefineConstructor richiede al chiamante di specificare gli attributi del costruttore mediante l'enumerazione MethodAttributes.

Il costruttore predefinito di una classe viene definito utilizzando il metodo TypeBuilder.DefineDefaultConstructor. DefineDefaultConstructor restituisce un ConstructorBuilder. Il costruttore predefinito chiama semplicemente il costruttore della classe padre. In Common Language Runtime viene definito automaticamente un costruttore predefinito per una classe se tale operazione non viene eseguita dal chiamante.

Attributi

  • Il runtime imposta per il costruttore l'attributo MethodAttributes.SpecialName.

  • I costruttori privati vengono specificati mediante l'attributo MethodAttributes.Private. Per altri attributi di visibilità, vedere la descrizione dell'enumerazione MethodAttributes.

Problemi noti

  • Sebbene ConstructorBuilder derivi da ConstructorInfo, alcuni dei metodi astratti definiti nella classe ConstructorInfo non sono implementati completamente in ConstructorBuilder. Questi metodi ConstructorBuilder generano l'eccezione NotSupportedException. È possibile ottenere le funzionalità desiderate recuperando il tipo contenente il costruttore e operando una reflection su tale tipo. Il metodo ConstructorBuilder.Invoke, ad esempio, non viene implementato completamente.

  • I modificatori personalizzati non sono attualmente supportati.

Vedere anche

Altre risorse

Utilizzo della reflection emit