我可以使用什么工具或方法来查看类似于匿名方法或LINQ语句的代码是如何编译的?基本看到幕后发生了什么?如何确定.Net中的场景背后发生了什么
2
A
回答
5
Reflector是一个很好的方法去做这个。
转到查看/选项/优化,并选择“无”,以便它不会试图找出C#原来是什么。
例如,这个小应用程序的Main
方法:
using System;
class Test
{
static void Main()
{
string other = "hello";
Foo (x => new { Before = other + x, After = x + other });
}
static void Foo<T>(Func<int, T> func) {}
}
在反编译:
private static void Main()
{
<>c__DisplayClass1 class2;
class2 = new <>c__DisplayClass1();
class2.other = "hello";
Foo(new Func<int, <>f__AnonymousType0<string, string>>(class2.<Main>b__0));
return;
}
,然后你在<>c__DisplayClass1
外观和<>f_AnonymousType0
更多细节等
2
您可以使用ildasm来查看编译器的MSIL输出。
1
如果您想在.NET框架中调用CLR方法时想进入内部和发生什么,还有另外一种方法。
如果您使用VS 2008,您甚至可以调试.net框架源代码。为此,您需要安装Microsoft source reference server hotfixes ..
而且Shawn Burke得到了一个很好的职位(一步一步的指导)来配置这个东西..
只要给一个尝试..
相关问题
- 1. ASP .NET - Eval()背后发生了什么?
- 2. 当我设置._visible场景背后会发生什么=假
- 3. 了解场景背后的反应
- 4. 重仓股场景(发生了什么事我的符号?)
- 5. 我的背景音乐发生了什么?
- 6. 幕后发生了什么?
- 7. Git:场景背后
- 8. Azure VIP SWAP - 场景背后真正发生的事情
- 9. TextChanged事件如何确定发生了什么变化
- 10. Rx for .NET - Scheduler.Dispatcher发生了什么?
- 11. NSComparator块中幕后发生了什么?
- 12. .NET 4.0中的Array.Sort()发生了什么? TrySZSort()消失了吗?
- 13. 为什么在下面的场景中会发生StackOverflowError?
- 14. OleDbConnection到Excel样式表:场景背后的组件是什么?
- 15. XCTest的@testable幕后发生了什么?
- 16. bash前进过程替换背后发生了什么?
- 17. 每次加载场景后,背景音乐变得更响了
- 18. JavaScript中的条件 - 现场发生了什么
- 19. 如何确定什么版本的.NET?
- 20. LocationResult中发生了什么?
- 21. DynamicViewDataDictionary.cs中发生了什么?
- 22. 发生了什么
- 23. )。发生了什么?
- 24. 发生了什么错了?
- 25. 在.NET中发生了什么事如果发生在释放方法(〜法)
- 26. Spring @Autowired - 在后台发生了什么
- 27. CGAL的python绑定发生了什么?
- 28. 两个场馆合并后旧Foursquare场地会发生什么?
- 29. 如何在舞台中更换场景后获取正确的场景位置?
- 30. 获取textView的背景颜色(我不知道发生了什么)