Partager via


Classe System.Reflection.Emit.MethodBuilder

Cet article vous offre des remarques complémentaires à la documentation de référence pour cette API.

La MethodBuilder classe est utilisée pour décrire entièrement une méthode dans le langage intermédiaire commun (CIL), y compris le nom, les attributs, la signature et le corps de la méthode. Il est utilisé conjointement avec la TypeBuilder classe pour créer des classes au moment de l’exécution.

Vous pouvez utiliser l’émission de réflexion pour définir des méthodes globales et définir des méthodes en tant que membres de type. Les API qui définissent des méthodes retournent MethodBuilder des objets.

Méthodes globales

Une méthode globale est définie à l’aide de la ModuleBuilder.DefineGlobalMethod méthode, qui retourne un MethodBuilder objet.

Les méthodes globales doivent être statiques. Si un module dynamique contient des méthodes globales, la ModuleBuilder.CreateGlobalFunctions méthode doit être appelée avant de conserver le module dynamique ou l’assembly dynamique contenant, car le Common Language Runtime reporte la correction du module dynamique jusqu’à ce que toutes les fonctions globales aient été définies.

Une méthode native globale est définie à l’aide de la ModuleBuilder.DefinePInvokeMethod méthode. Les méthodes PInvoke (Platform Invoke) ne doivent pas être déclarées abstraites ou virtuelles. Le runtime définit l’attribut d’une MethodAttributes.PinvokeImpl méthode d’appel de plateforme.

Méthodes en tant que membres de types

Une méthode est définie en tant que membre de type à l’aide de la TypeBuilder.DefineMethod méthode, qui retourne un MethodBuilder objet.

La DefineParameter méthode est utilisée pour définir le nom et les attributs de paramètre d’un paramètre ou de la valeur de retour. L’objet ParameterBuilder retourné par cette méthode représente un paramètre ou la valeur de retour. L’objet ParameterBuilder peut être utilisé pour définir le marshaling, définir la valeur constante et appliquer des attributs personnalisés.

Attributs

Les membres de l’énumération MethodAttributes définissent le caractère précis d’une méthode dynamique :

Problèmes connus