0

所以,我的目标是为我的项目 API 创建一个“视图依赖项”。类似于 SQL Management Studio 对数据库对象的“查看依赖关系”,它显示了谁在使用这些对象以及这些对象依赖于谁。

因此,如果我的 NameSpace1.Class1.Method1 正在使用 NameSpace2.Class1.Method2,那么当我对 NameSpace1.Class1.Method1 使用“查看依赖项”时,NameSpace2.Class1.Method2 应该列为 NameSpace1.Class1.Method1 所依赖的方法.

我知道反射以及它是/应该如何用于在运行时获取方法列表等等。我正在寻找一种方法来提取从相关方法中调用的其他方法。任何指向这个方向的指针都会受到赞赏。

4

2 回答 2

1

获取类,即每个类的所有属性/方法/每个方法的参数 - 这样您就可以使用已经是 .Net Framework 一部分的代码获取某些依赖项的信息。

要获得其余部分,您需要获取每个方法的 IL,并从MethodBase.GetMethodBody开始查看正在调用的内容。有允许解析 IL 的现有项目,即参见Traverse ac# 方法和分析方法体

于 2012-09-19T01:21:19.203 回答
0

如果您仔细分析 ILSpy 的代码库,您可能会遇到类似的功能(使用分析器),

https://github.com/icsharpcode/ILSpy

由于这是一个开源项目,您可以按照开源许可证重用其代码。

于 2012-09-19T05:53:58.607 回答