用于C#/.NET代码分析的API

用于C#/.NET代码分析的API,c#,.net,C#,.net,我不确定标题是否准确地描述了我想问的问题 基本上,Visual Studio如何查看CSPROJ中的代码文件并确定方法或变量的引用,或者代码中是否未使用using语句?显然,它不仅仅是做简单的文本解析,而且它似乎在做构建之前就可以工作,所以我不认为它引用了assembly/CLR 如果我让用户选择他们的CSPROJ或SLN文件,并能够使用文件中的语句或代码中没有调用的方法/变量报告未使用的,我是否可以从外部应用程序绑定API 我这样问是因为我正在考虑构建某种报告工具来显示代码清理可能发生的区域,

我不确定标题是否准确地描述了我想问的问题

基本上,Visual Studio如何查看CSPROJ中的代码文件并确定方法或变量的引用,或者代码中是否未使用
using
语句?显然,它不仅仅是做简单的文本解析,而且它似乎在做构建之前就可以工作,所以我不认为它引用了assembly/CLR

如果我让用户选择他们的CSPROJ或SLN文件,并能够使用文件中的语句或代码中没有调用的方法/变量报告未使用的
,我是否可以从外部应用程序绑定API

我这样问是因为我正在考虑构建某种报告工具来显示代码清理可能发生的区域,但我不确定从哪里开始

谢谢


编辑:作为一个后续问题,是否已经有了类似的工具?

除了提供Intellisense等功能外,Visual Studio还动态进行编译,以确定许多类似的事情

现在,编译器都是“黑匣子”,不能直接使用。的目标是改变这一点,允许所做的全部代码分析都是可用的。它目前在CTP中,现在可以使用

编辑:作为后续问题,是否已有类似的工具


许多第三方扩展,例如,提供了很多这方面的功能(例如它们的重构和扩展)。

我认为这正是适合的,但我对此知之甚少。mellamokb嗯,有趣的是,我将详细了解一下。。。Alex我使用过resharper,不记得看到过这些功能,但我没有深入使用它,所以我可能是错的。我可能也需要研究一下。谢谢你的评论!参见:智能感知。还有一些具有语言名称的程序集,其中包含解析器。Something.Something.CSharp,Something.Something.VisualBasic等。看起来你应该试试ReSharper,然后看看你是否有东西可以添加自己-R#已经在每个文件/项目级别进行了大量检查。找到了我要找的内容。我想这是里德的“黑匣子”<代码>Microsoft.CSharp.CSharpCodeProvider
它可能还有一些有用的东西。谢谢你。这正是我想要的信息,你的回答很有帮助。我现在正在读一些关于Roslyn的文章(根据你的回答和mellamokb的评论)。还有一个后续问题。在您看来,您认为Resharper是否在使用Roslyn进行代码分析功能?n/m Roselyn似乎很新,我知道Resharper已经存在很长时间了。@AdamPlocher我怀疑JetBrains有自己的“C#编译器”用于分析