MethodBuilder

MethodBuilder

System.Reflection.Emit (mscorlib.dll) sealed class

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 System.Reflection.MethodBase  public override Type  DeclaringType  {get; }  // overrides System.Reflection.MemberInfo  public bool  InitLocals  {set; get; }    public override RuntimeMethodHandle  MethodHandle  {get; }  // overrides System.Reflection.MethodBase  public override string  Name  {get; }  // overrides System.Reflection.MemberInfo  public override Type  ReflectedType  {get; }  // overrides System.Reflection.MemberInfo  public override Type  ReturnType  {get; }  // overrides System.Reflection.MethodInfo  public override ICustomAttributeProvider  ReturnTypeCustomAttributes  {get; }  // overrides System.Reflection.MethodInfo  public string  Signature  {get; }  // Public Instance Methods  public void  AddDeclarativeSecurity  (System.Security.Permissions.SecurityAction   action   ,        System.Security.PermissionSet   pset   );    public void  CreateMethodBody  (byte[ ]   il   , int   count   );    public ParameterBuilder  DefineParameter  (int   position   , System.Reflection.ParameterAttributes   attributes   ,        string   strParamName   );    public override bool  Equals  (object   obj   );  // overrides object  public override MethodInfo  GetBaseDefinition  ( );  // overrides System.Reflection.MethodInfo  public override object[ ]  GetCustomAttributes  (bool   inherit   )  // overrides System.Reflection.MemberInfo  public override object[ ]  GetCustomAttributes  (Type   attributeType   ,bool   inherit   )  // overrides System.Reflection.MemberInfo  public override int  GetHashCode  ( );  // overrides object  public ILGenerator  GetILGenerator  ( );    public ILGenerator  GetILGenerator  (int   size   );    public override MethodImplAttributes  GetMethodImplementationFlags  ( )  // overrides System.Reflection.MethodBase  public Module  GetModule  ( );    public override ParameterInfo[ ]  GetParameters  ( );  // overrides System.Reflection.MethodBase  public MethodToken  GetToken  ( );    public override object  Invoke  (object   obj   , System.Reflection.BindingFlags   invokeAttr   ,         System.Reflection.Binder   binder   ,        object[ ]   parameters   , System.Globalization.CultureInfo   culture   )  // overrides System.Reflection.MethodBase  public override bool  IsDefined  (Type   attributeType   , bool   inherit   );  // overrides System.Reflection.MemberInfo  public void  SetCustomAttribute  (System.Reflection.ConstructorInfo   con   , byte[ ]   binaryAttribute   );    public void  SetCustomAttribute  (CustomAttributeBuilder   customBuilder   );    public void  SetImplementationFlags  (System.Reflection.MethodImplAttributes   attributes   );    public void  SetMarshal  (UnmanagedMarshal   unmanagedMarshal   );    public void  SetSymCustomAttribute  (string   name   , byte[ ]   data   );    public override string  ToString  ( );  // overrides object  } 

Hierarchy

System.Object System.Reflection.MemberInfo(System.Reflection.ICustomAttributeProvider) System.Reflection.MethodBase System.Reflection.MethodInfo MethodBuilder

Returned By

ModuleBuilder.{DefineGlobalMethod( ) , DefinePInvokeMethod( )} , TypeBuilder.{DefineMethod( ) , DefinePInvokeMethod( )}

Passed To

EventBuilder.{AddOtherMethod( ) , SetAddOnMethod( ) , SetRaiseMethod( ) , SetRemoveOnMethod( )} , PropertyBuilder.{AddOtherMethod( ) , SetGetMethod( ) , SetSetMethod( )}



C# in a Nutshell
C # in a Nutshell, Second Edition
ISBN: 0596005261
EAN: 2147483647
Year: 2005
Pages: 963

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net