Gets a MethodBody that provides access to the MSIL stream, local variables, and exceptions for the current method. : MethodInfo « Reflection « C# / C Sharp






Gets a MethodBody that provides access to the MSIL stream, local variables, and exceptions for the current method.

  

using System;
using System.Reflection;

public class Example
{
    public static void Main()
    {
        MethodInfo mi = typeof(Example).GetMethod("MethodBodyExample");
        MethodBody mb = mi.GetMethodBody();
        Console.WriteLine("\r\nMethod: {0}", mi);

        Console.WriteLine(mb.InitLocals);
        Console.WriteLine(mb.MaxStackSize);

        foreach (LocalVariableInfo lvi in mb.LocalVariables)
        {
            Console.WriteLine("Local variable: {0}", lvi);
        }
        foreach (ExceptionHandlingClause ehc in mb.ExceptionHandlingClauses)
        {
            Console.WriteLine(ehc.Flags.ToString());
            switch (ehc.Flags)
            {
                case ExceptionHandlingClauseOptions.Filter:
                    Console.WriteLine(ehc.FilterOffset);
                    break;
                case ExceptionHandlingClauseOptions.Finally:
                    break;
                default:
                    Console.WriteLine(ehc.CatchType);
                    break;
            }
        }
    }
    public void MethodBodyExample(object arg)
    {
        int var1 = 42;
        string var2 = "Forty-two";
    }
}

   
    
  








Related examples in the same category

1.MethodInfo: Name
2.Type.GetMethods
3.List Assembly Info
4.dump the public methods of a class
5.Finding the class that contains a method in an assembly.
6.Invoke methods using reflectionInvoke methods using reflection
7.Analyze methods using reflectionAnalyze methods using reflection
8.dynamic invocation is demonstrated with MethodInfo.Invoke and Type.InvokeMember
9.Invokes the method.
10.Call a static method in a nested namespace.
11.Gets the parameters of the specified method or constructor.
12.Invokes the method or constructor represented by the current instance, using the specified parameters.
13.Gets a value indicating whether the method is abstract.
14.Indicating whether the potential visibility of this method or constructor is described by MethodAttributes.Assembly
15.Gets a value indicating whether this method is final.
16.Is it a public method.
17.MethodInfo List