问题标签 [roslyn-code-analysis]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
71 浏览

roslyn - Roslyn 是否提供了在 ClassDeclarationSyntax 中查找兼容方法的简单方法?

我需要在类代码中找到兼容的方法(如果存在)。Roslyn 中是否有一些更简单的方法可以做到这一点,否则我必须比较方法名称、参数的数量和类型。如果我们不必处理参数的非完全限定类型和继承,这没什么大不了的。

0 投票
1 回答
2710 浏览

c# - 何时使用 SemanticModel.GetSymbolInfo 以及何时使用 SemanticModel.GetDeclaredSymbol

在某些情况下,当我尝试为我的语法节点获取 ISymbol 时,我在使用 SemanticModel.GetSymbolInfo 时失败(获取 null),但在使用 SemanticModel.GetDeclaredSymbol 时成功。

我在下面附上了一个例子。

所以我的问题是何时使用每种方法来获取语义模型?

0 投票
1 回答
252 浏览

c# - 我能够为我的扩展获取 Roslyn 分析器,但未能获取用于相同诊断的 codeFix 提供程序

我创建了一个引用 Roslyn 分析器和代码修复库的 vsix 项目。我能够为我的扩展获取分析器,但未能为相同的诊断获取代码修复提供程序。

分析仪

CodeFix 提供程序

这是AsyncMethodNameAnalyzer上面提到的代码修复。看起来该Export属性无法正常运行。

0 投票
2 回答
193 浏览

roslyn - 从 Roslyn API 获取构建操作?

使用 Roslyn (Microsoft.CodeAnalysis) API,我如何获得Build Actionand Copy to Output Directory File Properties?我能够打开项目文件并获取文档,但不确定如何获取文件属性。

在此处输入图像描述

打开项目并循环文件很容易。我只想知道每个的构建操作是什么。

0 投票
1 回答
1715 浏览

c# - 用 roslyn fix 替换评论(在正确的地方添加琐事)

鉴于以下“代码修复”,
我正在尝试替换属性的文档元素,并将其替换为我的快速修复文档。

我在琐事中挣扎

我得到这个输出。

在此处输入图像描述

如何确保<summary在正确的位置之前有一个空格和换行符,并从新行public string开始。IE

我的注册码是这样的。

0 投票
2 回答
590 浏览

c# - Roslyn 代码分析器 - 我什么时候应该使用“this.”?

在使用实例成员时,我总是明确地使用我的代码,在它们前面this.加上静态成员,在它们前面加上类型名称。

Roslyn 似乎不喜欢这样,并礼貌地建议您可以在适当的情况下从您的代码中省略this.和...Type.

...所以我会在哪里做这个。.. (没有双关语)

...罗斯林建议我这样做...

...但是在使用扩展方法时,我似乎不能省略this.例如...

问题:

  1. 为什么 Roslyn 似乎不喜欢明确使用this.and Type.
  2. 为什么我需要显式使用this.扩展方法?
  3. 虽然严格来说不是这个问题的一部分,但我如何解决 Roslyn 不希望我使用和 StyleCop 的分析器坚持我使用它们之间的this.差异Type.
0 投票
2 回答
1180 浏览

c# - 如何比较 Roslyn 中不同项目的类型符号(ITypeSymbol)?

我在解决方案中有 2 个测试项目。
第一个项目(“VDoc”)声明 VDocQuery 类型。
第二个项目(“VDocQueryTest”)调用 VDocQuery 构造函数。
我得到 2 个 VDocQuery 的 ITypeSymbol(每个项目一个),比​​较它,但得到错误的结果。

步骤:
1. 获取第一个 ITypeSymbol(来自使用 SemanticModel.LookupNamespacesAndTypes() 方法的 VDoc 项目)。
2. 从 VDocQueryTest 项目中获取第二个 ITypeSymbol(来自 ObjectCreationExpressionSyntax.GetTypeInfo().Type)
3. 将其与 ITypeSymbol.Equals(ITypeSymbol) 进行比较。

我期待真实的结果,但得到错误的结果。

问题:如何在一个解决方案中正确比较来自不同项目的 ITypeSymbol?

代码示例:

VDocQuery.cs:

VDocQueryUse.cs:

0 投票
2 回答
786 浏览

visual-studio-2015 - 无法调试任何 Roslyn 诊断程序

我无法让 VS2015 RTM 将我的诊断安装到 Experimental 实例中,以便我可以调试它。

错误列表包含以下严重性

该项目可在此处获得。

它怎样才能让它工作?

添加VS2015版本信息

Microsoft Visual Studio Community 2015 版本 14.0.24627.00 更新 1 RC Microsoft .NET Framework 版本 4.6.01040

安装版本:社区

Visual Basic 2015 RC 00322-20000-00000-AA613 Microsoft Visual Basic 2015 RC

Visual C# 2015 RC 00322-20000-00000-AA613 Microsoft Visual C# 2015 RC

添加了指向 ActivityLog.xml 要点的链接

https://gist.github.com/AdamSpeight2008/40c21f31b9eee94bd23d

0 投票
0 回答
2910 浏览

c# - 如果代码分析器规则产生异常(消息 AD0001),我该怎么办?

在示例项目中,我通过代码分析器收到以下通知消息:

异常的图像

我试图禁用上述规则 (CA1033) - 但消息仍然存在。由于没有在哪个文件中创建此异常的信息,我不知道哪个文件导致了异常。

我尝试的另一件事是将第二个 Visual Studio 实例附加为调试器,但在触发异常时它不会中断。

有任何想法吗?我应该将此问题报告给分析器 github 项目吗?

NullReferenceException 的堆栈跟踪:

0 投票
1 回答
6419 浏览

visual-studio-2015 - 在 VS 2015 中从命令行运行代码分析工具

我想从命令行运行 VS 2015 提供的代码代码分析工具,就像我能够生成 FxCop 报告一样,如下所示:

请注意,我不想使用 FxCop 工具,而是想启动代码分析工具来生成报告,类似于我选择时生成的报告:

分析 -> 对解决方案运行代码分析

知道如何实现吗?

更新: 经过一番研究,我发现运行代码分析实际上执行位于的 FxCopCmd.exeC:\Program Files (x86)\Microsoft Visual Studio 14.0\Team Tools\Static Analysis Tools\FxCop\FxCopCmd.exe