Roslyn(又名.NET编译器平台)为开源C#和Visual Basic编译器提供了丰富的代码分析API。它支持使用Visual Studio使用的相同API构建代码分析工具。
Roslyn 分析器中的 TypeInfo.IsAssignableFrom
在我的 Roslyn 分析器中,我通过以下方式获取参数的 Microsoft.CodeAnalysis.TypeInfo var argumentTypeInfo = SemanticModel.GetTypeInfo(argumentSyntax.Expression); 我还有另一个 Microsoft 实例。
为什么本例中的 testB 没有像 testA 那样给出“警告 CS0184:给定的表达式不是提供的 ('MyClass2') 类型”? 班级计划 { 无效主() ...
最近发布的.NET工具似乎支持在PDB中嵌入C#,这应该会改善进入第三方等的体验。运行csc /?,我可以清楚地看到/embed
我想知道如何在调试模式下禁用整个解决方案中的所有 roslyn 分析器,但在发布模式下保持启用它们? 我可以找到永久或单独禁用它们的参考资料。
源生成器在 Visual Studio 2022 中无法正常工作
我正在编写一个源生成器,它自动编写 JsonObject 类,将 JSON 转换为运行时对象。 如屏幕截图所示,您可以看到红色波浪线。这些是 CS0246。哈...
我编写了一个分析器,如果某些方法未标记为异步,它将对其进行标记。 我现在正在实现一个代码修复程序,使它们异步。 它还会添加一个等待表达式,或者...
我正在尝试在 IDE (QueryStorm) 中支持内置 Roslyn 代码修复程序。我已经成功使用了一些修复程序,其中大多数是不需要用户界面的修复程序,例如项目符号参考代码Ac...
如何使 Roslyn 又名 MSBuildWorkspace 的行为与 Visual Studio/MSBuild 的行为相同? (又名“ResolveComReferences 问题”)
我正在尝试让 Roslyn/MSBuildWorkspace 在一些旧的 .NET Framework 项目上工作。这些偶尔会有 COM 引用,其中一些是不正确的。 在 Visual Studio 中编译会出现警告...
C# 运行时编译抱怨类型“Object”是在未引用的程序集中定义的
我正在尝试使用 Roslyn 在运行时编译 C# 代码。我的编译函数如下: 使用 System.Collections.Immutable; 使用Basic.Reference.Assemblies; 使用 Microsoft.CodeAnalysis; 你...
如何将自定义代码分析器添加到没有 nuget 或 VSIX 的项目?
我想在 Visual Studio 2015 中为 C# ConsoleApplication 编写自定义代码分析器。因此,我不想从模板创建一个单独的“带有代码修复的分析器”项目,因为...
我有以下违反 CS0279 规则的示例。在 VS 中,减弱被突出显示,但在 Rider 中却没有。 Rider 中的一些 CS* 规则会突出显示,有些则不会。 公开课 myTest :
Roslyn SemanticModel 符号解析无法可靠工作
我正在编写一个程序,需要分析 C# 代码并弄清楚对于每个方法调用,到底调用的是哪个类的哪个方法。适合这项工作的工具似乎是
我有一组在 Visual Studio 2022 上成功编译和构建的项目。 我想以编程方式构建它们。为此,我创建了一个利用 Microsoft 的构建器项目。
将 ArgumentSyntax 和 VariableDeclaratorSyntax 更改为 InitationExpression
我编写了下面的程序,可以识别方法的变量和参数中的字符串。我想做的是将这些字符串替换为对我添加的新方法的方法调用...
我正在编写一个 Roslyn 分析器,它可以重命名与特定模式匹配的类。重命名“修复”成功地重命名了类,但在我的单元测试中(它使用内存中的源,这很奇怪
C# Roslyn 分析器项目不想使用引用项目中的类和方法。如何让它发挥作用?
我们正在开发一个项目,使用 C# 分析器项目和 Roslyn API 通过扩展在代码中显示诊断信息。 我们注册一个 SymbolAction 并在方法中AnalyzeSymbol我们...
这是为什么: 公共 int X { 得到; } = 5 公共 int Y { 得到; } = X; 不可能? 因为手动执行: 公共测试类() { X=5; Y=X; } 有效,(显然?)这个也有效: 公开
我有一个c#项目。我已将 NameSpaceDeclarationSyntax 例如 namespace1 重命名为 namespace2 。 当我用 Visual Studio 和 roslyn api 编译这个项目时,我发现 Visual Studio 有
这是我的代码示例 使用 Microsoft.CodeAnalysis; 使用 Microsoft.CodeAnalysis.CSharp; 使用 Microsoft.CodeAnalysis.Text; 使用系统; 使用 System.Collections.Generic; 使用 System.Linq; 使用
Roslyn 代码重构 VSIX 项目 -- 如何向 VSIX 添加更多内容?
我已经通过代码重构 (CodeRefactoringProvider) roslyn 项目创建了一个带有一些不错的重构功能的 Visual Studio 扩展,但在添加方面并没有什么实际意义