是否有一种方法可以使用反射来完全“扫描”程序集,以查看是否使用过System.IO.File或System.IO.Directory?这些只是示例类。只是想知道是否有一种通过反射(vs代码分析)来实现的方法。
更新:参见注释
发布于 2009-07-09 21:16:32
正如汤米·卡利尔( Tommy )所建议的,使用塞西尔非常容易。
using Mono.Cecil;
// ..
var assembly = AssemblyFactory.GetAssembly ("Foo.Bar.dll");
var module = assembly.MainModule;
bool references_file = module.TypeReferences.Contains ("System.IO.File");发布于 2009-07-09 20:55:24
出色的NDepend工具将为您提供这类依赖信息。
在NDepend中加载dll,或者使用GUI查找所需的内容,或者使用以下CQL查询:
SELECT TYPES WHERE IsDirectlyUsing "System.IO.File"你应该得到所有使用这个的类型的列表。
发布于 2009-07-09 20:51:15
我建议你看看赛西尔。使用Cecil,您可以枚举所有类、方法甚至IL指令(包括所有方法调用)。
https://stackoverflow.com/questions/1106322
复制相似问题