我正在考虑将第三方库移植到Windows Store应用程序的.NET。该库通过调用System.Reflection.Emit.OpCodes方法重载来过度使用ILGenerator.Emit。
在.NET for Windows Store Apps API中,包括了OpCode
结构和OpCodes
类,但是没有ILGenerator
类,据我所知,也没有替代品。
我显然缺少了一些东西,但是:没有ILGenerator
类,在Windows Store应用程序API的.NET中包括System.Reflection.Emit.OpCode
和OpCodes
的目的是什么?
最佳答案
好问题。虽然我不能肯定地说,但只有两个原因能使我想到使用OpCode / Opcodes(而且我真的无法想象它用于其他用途):
由于不是前者,所以我猜他们正在使用后者。该应用程序是静态代码分析。我自己使用它。来实现一些模拟行为并弄清楚传递给它的lambda表达式是什么(在这种情况下,不能使用Expressions)。在这种情况下,代码分析的另一个应用程序可能是检查是否使用了某些不允许的类/方法/构造(我可以想象它们不希望您使用某些功能)。