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

标签 c# .net

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

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

如果我让用户选择他们的 CSPROJ 或 SLN 文件并能够报告文件中未使用的 using 语句或方法/没有在他们的代码中的任何地方调用的变量?

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

谢谢!

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

最佳答案

Visual Studio 会动态编译,以便确定许多类似的事情,此外还提供 Intellisense 等功能。

现在,编译器都是一个“黑盒子”,不能直接使用。 Roslyn project的目标是改变这一点,让正在进行的代码分析的全部范围都可用。它目前在 CTP 中,现在可以使用。

EDIT: As a followup question, is there a similar tool already out there?

许多第三方扩展,例如 Resharper ,提供了很多这样的功能(例如他们的 Safe Delete 重构和 Solution Wide Inspections )。

关于c# - 用于 C#/.NET 代码分析的 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16067395/

相关文章:

.net - 为什么属性 setter 和 getter 与get_X和set_X方法冲突?

.net - 将解决方案更新到.net Framework 4.7 : issue with Roslyn

c# - "Live Charts"图形刷新速度随着数据的处理和添加到 WPF C# 图表而变慢

c# - new UTF8Encoding(false) 仍然写 utf8 BOM

c# - 字符串长度昂贵

c# - 如何在 Metro/WinRT 中将主机名解析为 IP 地址?

c# - Visual Studio 2019 和 AWS : "not a supported code page" when doing a . NET Core 2.1 项目

c# - 我如何知道进程(即我的应用程序)当前打开了哪些文件?

c# - String.Equals vs String.Compare vs "=="实战。需要解释

c# - 通过 .NET 代码禁用 SQL Server 的缓存