您的位置:首页 > 编程语言

查看当前执行程序集的IL代码片段

2011-03-04 10:21 141 查看
1 static void Main(string[] args)
2 {
3 WriteIL("M1");
4 WriteIL("M2");
5 Console.Read();
6 }
7
8 void M1()
9 {
10 int a = 0;
11 }
12
13 void M2()
14 {
15 int a = 0;
16 Console.WriteLine(a);
17 }
18
19 private static void WriteIL(string method)
20 {
21 Type tp = (new Program()).GetType();
22
23 MethodInfo mi = tp.GetMethod(method,
24 BindingFlags.NonPublic | BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.Static | BindingFlags.Instance);
25
26 MethodBody mb = mi.GetMethodBody();
27 byte[] bt = mb.GetILAsByteArray();
28
29 StringBuilder sb = new StringBuilder();
30 for (int i = 0; i < bt.Length; i++)
31 {
32 sb.Append(bt[i].ToString("X2"));
33 sb.Append(" ");
34 }
35
36 Console.WriteLine(sb.ToString());
37 }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐