我可以使用反射来检查方法中的代码吗?

我可以使用反射来检查方法中的代码吗?

我正在玩C#反射API。我可以轻松地Type在程序集中加载类,方法等信息,但是,现在我想知道如何加载和读取方法中的代码?



慕勒3428872
浏览 435回答 3
3回答

胡子哥哥

基本答案:你不能用反射API(System.Reflection)。原因是反射api被设计用于元数据(类的类型,名称和方法的签名,......),但不在数据级别(这将是IL流本身)上。扩展答案:您可以使用System.Reflection.Emit(例如ILGenerator Class)发出(但不读取)IL。通过MethodInfo.GetMethodBody()您可以获得用于实现方法的二进制IL流。但那通常完全没用。您可以使用外部库(如Cecil)来读取/修改/添加/删除方法中的代码。
打开App,查看更多内容
随时随地看视频慕课网APP