roslyn相关内容

使用 roslyn 扩展 c# 语法

我正在尝试在没有 else 情况的情况下实现“return if"/“return value if",因为我只想在条件有效时返回或返回一个值. 我知道,有 if (condition) return; 或 if (condition) return value; 但我想让代码更清晰一点,它会拥有这种语法就好了,因为它更具可读性. 我听说 roslyn 这是可能的,并在此处阅读问题及其 ..
发布时间:2021-07-10 19:32:19 C#/.NET

使用 Roslyn 访问和修改解决方案中的所有文档

我想使用 Roslyn 遍历给定解决方案中每个项目中的所有文档. 这是我现在的代码: var msWorkspace = MSBuildWorkspace.Create();var 解决方案 = 等待 msWorkspace.OpenSolutionAsync(solutionPath);foreach(解决方案中的 var 项目.Projects){foreach(project.Doc ..
发布时间:2021-07-10 19:32:16 C#/.NET

为什么 VS 2017 会建议用方法替换属性?

我注意到 Visual Studio 2017 中的每个属性都有一个快速操作,建议将其替换为方法. 这是否意味着属性不是设置和获取字段值的推荐方式,微软是否打算在未来弃用它?! 或者,为此目的,使用方法而不是属性可以实现任何收益吗? 解决方案 这不是来自 Visual Studio 的建议,而是一个 快速操作: 快速操作可让您通过单个操作轻松重构、生成或以其他方式修改代码 ..
发布时间:2021-07-10 19:32:13 C#/.NET

如何在 CompilationUnit 中找到方法 Symbol 的 SyntaxNode?

我在编译单元中添加了一堆节点,现在我想查找给定符号对应的语法节点: var compiler = Compilation.Create(“HelloWorld").AddSyntaxTrees(SyntaxTree.ParseCompilationUnit(""));ISymbol 符号 =//一些任意符号,例如我有一个语法节点的方法编译.GlobalNamesp ..
发布时间:2021-07-10 19:32:10 C#/.NET

使用 Roslyn June 2012 CTP 在 Visual Studio 2012 RC 中更改 C# 交互窗口的字体和颜色

默认设置适用于浅色主题,但在深色设置下,默认消息文本保持黑色(实际上错误消息文本颜色也保持不变,但它是红色的,所以没关系).基本上它看起来与相关问题中的完全一样,但在这种情况下,我使用的是 VS 2012. 相关 有没有办法更改 Roslyn CTP 中 C# 交互窗口的字体和颜色? 解决方案 在 2012 年 6 月的 CTP 中,您可以设置 C# Interactive Win ..
发布时间:2021-07-10 19:32:07 C#/.NET

如何使用 roslyn 将现有项目添加到 c# 解决方案?

我想将现有项目添加到我的 c# 解决方案中.我使用了 TryApplyChanges 并且它返回 true 但它不会保存对实际解决方案的更改.我使用了 Microsoft.CodeAnalysis.* 版本 1.1.1. public void AddProject (string solutionName){MSBuildWorkspace ws=MSBuildWorkspace.Creat ..
发布时间:2021-07-10 19:32:04 C#/.NET

项目编译引用项目中任意语法树如何GetSemanticModel

当我编译一个项目时(使用 MSBuildWorkspace.Create().OpenProjectAsync().GetCompilationAsync(); 我得到一个 Compilation 返回,其中包括 x 该项目中 x 文件的语法树.但该项目还引用了其他项目.我可以在 Compilation 的 References 属性中看到这些项目,不过好像调用Compliation.GetSem ..
发布时间:2021-07-10 19:31:58 其他开发

如何向 SyntaxNode 添加自定义语法注释?

在先前版本的 Roslyn 中,我可以使用从 SyntaxAnnotation 派生的类将自定义数据添加到 SyntaxNode.但是现在 SyntaxAnnotation 是密封的,我只能将 SyntaxAnnotation 用于字符串:种类和数据.这对我来说还不够.我想从 AST 构建自定义 CFG 并在 CFG 和 AST 节点之间建立双向链接. 我该怎么做? 解决方案 Syn ..
发布时间:2021-07-10 19:31:56 其他开发

使用 roslyn 从文本位置转到定义

如何获取当前自定义位置和文件(在项目或解决方案内)下任何符号的定义文件名和位置? 我做了以下步骤(简化说明): 通过以下方式创建语法树集合并编译: SyntaxTrees = new List();foreach(projectFiles 中的 var 文件)syntaxTrees.Add(SyntaxTree.ParseText(File.ReadAllText(file));Co ..
发布时间:2021-07-10 19:31:53 C#/.NET

使用 Roslyn,如何检查类是否来自本地项目,而不是 BCL 或 Nuget(等)?

我想写一个 Roslyn 代码分析器;如果 ObjectCreationExpression 正在从本地类(在当前项目中或当前解决方案中的项目中)创建对象,则需要确定;或者如果该类来自其他地方,例如基类库或 Nuget 包等. 我如何知道 Roslyn 中某个类的来源? 解决方案 你只能在语义模型的帮助下得到它.您可以获得构造函数的符号,并通过 检查类型来自哪里Locations 或 ..
发布时间:2021-07-10 19:31:50 C#/.NET

使用 Roslyn 更改文件

我正在尝试编写一个命令行工具,使用 Roslyn 修改一些代码.一切似乎都很顺利:解决方案已打开,解决方案已更改,Workspace.TryApplyChanges 方法返回 true.但是,磁盘上的实际文件没有更改.这是怎么回事?下面是我使用的顶级代码. static void Main(string[] args){var solutionPath = args[0];UpdateAnnot ..
发布时间:2021-07-10 19:31:47 C#/.NET

使用 Roslyn 解析类的函数和属性

我是 Roslyn 的新手,我正在尝试解析 cs 文件并获取函数和属性. API 示例 //将不再起作用var tree = SyntaxTree.ParseText(...);var tree = SyntaxTree.ParseFle(...);var root = tree.Root; API 似乎已更改,将不再起作用.仅凭外观就可以猜到它适用于 2012 Roslyn CTP. ..
发布时间:2021-07-10 19:31:40 C#/.NET

从分类器 VSIX 获取语义模型

由于 R# 不支持 Roslyn Early Preview C# 6.0 功能,代码看起来很枯燥...... 我想使用分类器 VSIX 为代码着色.是否可以从 Roslyn Language Service 获取当前文档的语义模型? 解决方案 需要添加对Microsoft.CodeAnalysis.EditorFeatures.Text.dll的引用,然后使用如下代码. var ..
发布时间:2021-07-10 19:31:37 C#/.NET

如何使用 Roslyn 加载现有程序集,对其进行转换并生成新的 .cs 文件

Roslyn 的文档似乎有点缺乏?我找不到很好的综合文档. 我基本上要做的是复制现有 API (.dll) 的公共表面转换成一个新的程序集(需要创建源代码 .cs 文件!),同时对生成的代码进行各种转换(想想制作包装类). 非常感谢我如何使用 Rolsyn 从现有程序集中加载初始 SyntaxTree 以及如何进行这些基本转换(例如排除内部类等) 解决方案 在当前的 Rosly ..
发布时间:2021-07-10 19:31:34 C#/.NET

Roslyn 可以用于 VB.NET 脚本吗?

我正在为我的应用程序创建一个脚本编辑器,我希望它能够使用 Roslyn 运行 C# 和 VB.NET 脚本.我通过使用 Microsoft.CodeAnalysis.CSharp.Scripting 程序集/命名空间中的 CSharpScript 类来使用 C#,但是没有等效的 VisualBasicScript 我能找到的类,也不是 Microsoft.CodeAnalysis.VisualBa ..
发布时间:2021-07-10 19:31:31 其他开发

如何关闭 Visual Studio 2015 Roslyn 错误突出显示?

对于 Resharper,我们可以有选择地打开/关闭它,但我找不到关闭内置 Visual Studio 2015 代码亮点/建议的方法. 我想这样做的原因是因为我有很多左连接 linq,而这些查询搞砸了 Visual Studio. 我在 linq 上看到很多波浪线,我更喜欢关闭它们. 这是我正在谈论的错误之一......我不知道如何摆脱它. 表达式的结果始终为“true" ..
发布时间:2021-07-10 19:31:28 其他开发

如何从 VS 包中获取 Roslyn 工作区?

如何从 Visual Studio 2015 CTP5 包中获取当前的 Roslyn 工作区? 我看了 如何获取对“Roslyn"工作区的引用来自 IVsSolution 的对象? 和 Roslyn:如何获得从当前加载的解决方案对 Workspace 的引用? 但我仍然无法让它工作: Workspace.CurrentWorkspace 不再存在 我已尝试 ..
发布时间:2021-07-10 19:31:25 其他开发

将标记和琐事映射到行号

我正在尝试使用 Roslyn 将标记和琐事映射到行号. 这是我在下方@Kevin Pilch-Bisson 的帮助下的最新尝试. 公共类 CSharpSlocAnalyser : ISlocAnalyser{public long GetSlocFor(IEnumerable files, SlocOptions options){var tree = CSharpSyntaxTree.P ..
发布时间:2021-07-10 19:31:22 C#/.NET