Roslyn(又名.NET编译器平台)为开源C#和Visual Basic编译器提供了丰富的代码分析API。它支持使用Visual Studio使用的相同API构建代码分析工具。
我想在VS2013中的C#(.NET 4.5)脚本中进行简单的代码替换。每个@GetIt调用都应该重写,以便封装在lambda函数中:new MyClass(@GetInt(“ a”)* @GetInt(“ b” ...
在Roslyn代码分析器中检查变量类型的正确方法是什么?我正在注册一个ObjectCreationExpressionSyntax节点,我可以获取类型,但是我不确定使用正确的方法...
对于不同类型的符号,从Microsoft.CodeAnalysis.ISymbol获取System.Type的最佳通用方法是什么? (例如,类声明,变量,属性等),我希望能够...
我有以下代码,但是我找不到如何获取var TypeSyntax。有任何想法吗? Syntax.LocalDeclarationStatement(声明:Syntax.VariableDeclaration(...
如何使用Roslyn Analyzer检测特定方法是否不包含try catch块?
我想分析类似public void GetDetails(){试试{//一些代码} catch(){//一些代码}}}在Roslyn Analyzer项目中,我有以下类似内容:...
有人知道为什么C#中的匿名类型对ToString使用如此复杂的实现吗?我相信较早的版本使用了更简单的StringBuilder实现。这是来自...
将Roslyn MSBuildWorkspace输出到其他文件夹
执行mSBuildWorkspace.TryApplyChanges(solution); Visual Studio更改了解决方案。这意味着如果要输出到其他位置,则需要首先复制整个...
因此,我正在使用Roslyn生成具有许多文件的解决方案的智能感知结果,并且每次按键时我都需要更新文档。创建源文本实例和新解决方案需要非常...
如何从FieldDeclarationSyntax节点获取Roslyn FieldSymbol?
我正在尝试使用Roslyn来确定项目的公开API(然后使用此信息进行一些进一步的处理,因此我不能仅使用反射)。我正在使用SyntaxWalker来...
我正在尝试编写需要使用NuGet程序包的C#交互式脚本(.csx),但是我必须忽略一些基本内容,因为我无法使其正常工作。我尝试添加一个project.json ...
作为编译的输入,我有一个包含以下代码的字符串:public class Person {public string FirstName {get;组; }公用字符串LastName {get;组; } public int年龄{...
这是我以前使用的代码:MSBuildWorkspace msBuild = MSBuildWorkspace.Create();解决方案sln =等待msBuild.OpenSolutionAsync(solutionPath);但现在我得到:int pr = sln.Projects.Count(); // ...
我是Roslyn的新手,我必须编写一个分析器,该分析器在使用Linq时将有助于改善可为空的注释。目标是强制将.XYZOrDefault()的任何用法存储在可为空的...
是否有C#8的编译器指令或检测是否设置了[[启用?我只有源代码的Nuget包,可以帮助提供可为空的引用...
MSBuildWorkspace无法将具有 的项目编译到另一个项目
[注意,我也在Roslyn的GitHub上问了这个问题(带有复制代码)。用2个项目(CoreLibrary和DownstreamLibrary)创建一个新的解决方案。从...添加项目引用...
我将如何以编程方式告诉Visual Studio加载外部修改?
我正在编写执行以下操作的Visual Studio 2019扩展:CheckoutGitBranch(“ some-branch”); WaitUntilChangesAreLoadedIntoWorkspace(); //
如何使.editorconfig命名冲突对dotnet构建可见? (IDE1006警告)
我最近通过.editorconfig为netcoreapp3.1 c#项目实现了自定义FxCopAnalyzers策略。我现在在Visual Studio中对代码样式和命名策略有更多警告和提示...
在我的Visual Studio程序包中,我获得了Josh Varty描述的VisualStudioWorkspace https://joshvarty.com/2014/09/12/learn-roslyn-now-part-6-working-with-workspaces/使用EnvDTE。项目...
为什么用/ langversion:latest编译时未报告C#CS0136错误>
下面的代码在Debug中可正常编译,但由于Release中的CS0136(无法对名为'x'的本地或参数进行贴标..)错误而失败。有人知道为什么在调试版本中未报告错误吗? ...