.NET中CIL知识的优势

Joa*_*nge 7 .net c# cil

理解CIL有什么好处?

你必须知道装配才能理解它吗?这些文件中的代码看起来很相似.

我如何了解更多信息?有关它的任何书籍,如Jon Skeet的C#书吗?

Mic*_*lGG 6

我在学习IL和CLR时发现这些书很有用:

阅读它们会给你很多信息.

(我也听说过C#的CLR非常好,但是我自己还没看过.)

当您遇到问题时,了解IL和CLR将为您提供帮助.(漏洞抽象?)虽然现在有了像Reflector这样好的反编译器,但我发现自己并没有使用ildasm.

理解装配不是必需的,但它会有所帮助.在大多数情况下,IL实际上非常简单.

IL派上用场的一个例子是确切地确定F#究竟是如何编译某些结构的.另一个是能够使用DynamicMethod和System.Reflection.Emit,它可以在某些情况下打开一些不错的解决方案.


Rin*_*lin 6

了解CIL可以让您在某些边缘情况下从.NET框架中获得更多.

请注意,您无需阅读原始操作码即可从此知识中受益.IL和程序集的一般知识,加上Mono.Cecil.dll可以创造奇迹:

PS:对我而言,获得一些实用的IL知识的最佳来源方法是阅读一些Gendarme规则的C#代码(它是使用Mono.Cecil进行代码内省的FxCop的类比).此外,这篇文章是一个很好的开始:解析方法体的IL.


not*_*not 0

也许你可以用 CIL 做一些事情,但我想不出一个实际的例子。无论如何,这里有一个教程:

http://weblogs.asp.net/kennykerr/archive/2004/09/07/introduction-to-msil-part-1-hello-world.aspx