Name

MethodBuilder

Synopsis

This class represents a dynamically created method. Methods are created with TypeBuilder.DefineMethod( ). When creating a method, specify the name, parameters, and return type. You can also specify other characteristics of the method, such as whether it is static, abstract, or virtual, by using the System.Reflection.MethodAttributes enumeration. After creating a method, you can specify how the return value will be marshaled to unmanaged code using SetMarshal( ), and add declarative security using AddDeclarativeSecurity( ). You must specify the security action (such as Demand, Assert, Deny) using the System.Security.Permissions.SecurityAction enumeration and the permissions required using the System.Security.PermissionSet collection class. You can call AddDeclarativeSecurity( ) several times to specify different security actions.

To create a global method builder, use ModuleBuilder.DefineGlobalMethod( ). You must also use ModuleBuilder.CreateGlobalFunctions( ) to finish creating global methods before you persist or use the dynamic module. Global methods must be static. You can also create a global native method using ModuleBuilder.DefinePInvokeMethod( ). PInvoke methods cannot be abstract or virtual.

public sealed class MethodBuilder : System.Reflection.MethodInfo {
// Public Instance Properties
   public override MethodAttributes Attributes{get; } 
// overrides System.Reflection.MethodBase
   public override CallingConventions CallingConvention{get; }
// overrides ...

Get C# in a Nutshell, Second Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.