ojh*_*ins 6 c# il intermediate-language
我在一个相当大的代码库中工作,今天我找到了IL code一个正常的内部发光项目class.
包含要发出的IL代码的项目是Service Locator MSDN描述的实现.
什么是这样做的优点和为什么会变成这样做是并列使用的C#语言?
ang*_*son 14
通常,这是为了使用仅在运行时可用的信息来规避使用反射的开销.
然后,您将使用反射,根据您的操作,反射可能会很慢,以构建一个新代码,直接使用给定的数据,而不使用反射.
好处:
缺点:
因此,在开始这项工作之前,您需要确保它真的物有所值.
请注意,这是一般答案.在您遇到的特定情况下,没有办法回答为什么这样做,也没有办法在没有实际看到代码的情况下获得哪些特定优点(或缺点).
小智 5
这有很多用途。
最常用的场景之一是动态更改/注入代码:
.NET CLR 注入:在运行时修改 IL 代码
一个很好的教程可以帮助我理解它的良好用途: Dynamic...But Fast: The Tale of Three Monkeys, A Wolf and the DynamicMethod and ILGenerator Classes
祝你好运