我希望基于自定义规则创建.net代码分析工具。 我将使用反射来读取整个代码。有没有办法使用反射或任何其他程序集读取类或方法中消耗的行数。
我正在考虑使用一些开源工具,因此我可以对其进行修改但无法在Google上找到它。
欢迎提出建议! THX
答案 0 :(得分:1)
您无法使用反射来阅读整个代码"。你怎么会得到任何一个声明?从根本上说,您需要一个源代码解析器。
也许Roslyn是你需要的。
答案 1 :(得分:0)
是否有任何方法可以使用反射或任何其他程序集读取类或方法中消耗的行数。
这是不可能的。您可以做的最好的事情是检查每个MethodBody
的MethodInfo
提供对方法正文的元数据和MSIL的访问。
但代码行不是你能得到的。行数完全是源代码属性,无法通过反射获得。
确实
int x; x = 1; doSomethingWith(x);
算作一行,两行或三行?那怎么样:
int x;
x = 1;
doSomethingWith(x);
代码行很少是一个有用的指标 - 例如,请参阅 “When, if ever, is “number of lines of code” a useful metric?”
正如Ira Baxter指出的,你应该看看罗斯林。