问题标签 [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.
roslyn - Roslyn 是否提供了在 ClassDeclarationSyntax 中查找兼容方法的简单方法?
我需要在类代码中找到兼容的方法(如果存在)。Roslyn 中是否有一些更简单的方法可以做到这一点,否则我必须比较方法名称、参数的数量和类型。如果我们不必处理参数的非完全限定类型和继承,这没什么大不了的。
c# - 何时使用 SemanticModel.GetSymbolInfo 以及何时使用 SemanticModel.GetDeclaredSymbol
在某些情况下,当我尝试为我的语法节点获取 ISymbol 时,我在使用 SemanticModel.GetSymbolInfo 时失败(获取 null),但在使用 SemanticModel.GetDeclaredSymbol 时成功。
我在下面附上了一个例子。
所以我的问题是何时使用每种方法来获取语义模型?
c# - 我能够为我的扩展获取 Roslyn 分析器,但未能获取用于相同诊断的 codeFix 提供程序
我创建了一个引用 Roslyn 分析器和代码修复库的 vsix 项目。我能够为我的扩展获取分析器,但未能为相同的诊断获取代码修复提供程序。
分析仪
CodeFix 提供程序
这是AsyncMethodNameAnalyzer
上面提到的代码修复。看起来该Export
属性无法正常运行。
c# - Roslyn 代码分析器 - 我什么时候应该使用“this.”?
在使用实例成员时,我总是明确地使用我的代码,在它们前面this.
加上静态成员,在它们前面加上类型名称。
Roslyn 似乎不喜欢这样,并礼貌地建议您可以在适当的情况下从您的代码中省略this.
和...Type.
...所以我会在哪里做这个。.. (没有双关语)
...罗斯林建议我这样做...
...但是在使用扩展方法时,我似乎不能省略this.
例如...
问题:
- 为什么 Roslyn 似乎不喜欢明确使用
this.
andType.
? - 为什么我需要显式使用
this.
扩展方法? - 虽然严格来说不是这个问题的一部分,但我如何解决 Roslyn 不希望我使用和 StyleCop 的分析器坚持我使用它们之间的
this.
差异Type.
?
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:
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
c# - 如果代码分析器规则产生异常(消息 AD0001),我该怎么办?
在示例项目中,我通过代码分析器收到以下通知消息:
我试图禁用上述规则 (CA1033) - 但消息仍然存在。由于没有在哪个文件中创建此异常的信息,我不知道哪个文件导致了异常。
我尝试的另一件事是将第二个 Visual Studio 实例附加为调试器,但在触发异常时它不会中断。
有任何想法吗?我应该将此问题报告给分析器 github 项目吗?
NullReferenceException 的堆栈跟踪:
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