Tag: roslyn

如何用Roslyn声明var变量?

我有以下代码,但我找不到如何获取var TypeSyntax 。 有任何想法吗? Syntax.LocalDeclarationStatement( declaration: Syntax.VariableDeclaration( type: Syntax.PredefinedType(Syntax.Token(SyntaxKind.VarKeyword)), variables: Syntax.SeparatedList( Syntax.VariableDeclarator( identifier: Syntax.Identifier(name))) ) ) ); 这失败了一个Argumentexception,上面写着:“keyword”

如何禁用所有Roslyn代码分析器?

我正在尝试使用一个拥有少量Roslyn代码分析器的大型开源项目。 当我打开解决方案时,Visual Studio使用~35%的CPU大约15分钟。 使用PerfView我发现在解决方案上运行的代码分析器正在使Visual Studio陷入困境。 我知道可以在每个项目的基础上禁用分析器,但是这个解决方案包含100多个项目,所以我不想一个一个地执行此操作。 我的问题: 我可以为给定的解决方案禁用所有Roslyn分析器以避免这种情况吗? 我可以在Visual Studio中为所有解决方案禁用所有Roslyn分析器吗?

使用Roslyn将自定义属性添加到C#类

考虑文件“MyClass.cs”中的以下类 using System; public class MyClass : Entity { public long Id { get; set; } [Required] public string Name { get; set; } public string Slug { get; set; } public DateTime CreatedOn { get; private set; } public DateTime UpdatedOn { get; private set; } /* … */ } 目前我手动创建数据合同类,如下所示: [DataContract(Namespace = “http://example.com/”, […]

Roslyn将文档添加到项目中

我正在运行roslyn ctp2 我正在尝试将新的html文件添加到项目中 IWorkspace workspace = Workspace.LoadSolution(“MySolution.sln”); var originalSolution = workspace.CurrentSolution; ISolution newSolution = originalSolution; newSolution.GetProject(newSolution.ProjectIds.First()) .AddDocument(“index.html”, “”); workspace.ApplyChanges(originalSolution, newSolution); 这导致没有写入任何更改。 我想让新的html文件出现在VS中

在C#interactive中获取调试器上下文

C#Interactive似乎比立即窗口更强大(至少它处理LINQ中经常使用的lambda表达式 – 请参阅Visual Studio调试“快速监视”工具和lambda表达式 ),但看起来它不能用作一个替代品,因为它不知道调试器上下文。 有没有办法访问调试器上下文? 我已经看到在F#中获取调试器上下文,它可能需要相同的东西,但也许有新的/不同的东西可用。 http://extendedimmediatewin.codeplex.com/可能很有用,但看起来已经死了,虽然有人在2011年10月18日说他打算将它移植到VB.Net( http://extendedimmediatewin.codeplex.com/discussions/75589 )。

在C#中运行F#代码 – (与C#中的C#一样使用Roslyn)

有没有办法在C#中运行F#代码? 我在C#中编写了一个应用程序 – 我想让它能够执行F#,读取Record对象,枚举来自F#的列表。 目前的解决方案是什么? 我知道将来可能有办法通过更新Roslyn来做到这一点。 此外,好奇如何在F#中运行F#代码,目前。 有没有办法轻松做到这一点?

是否可以使用.net core Roslyn编译器编译单个C#代码文件?

在旧的.net中,我们曾经能够运行csc编译器来编译单个cs文件或多个文件。 使用.net核心,我们有dotnet build ,坚持拥有一个合适的项目文件。 是否有一个独立的命令行编译器,它可以在没有项目的情况下编译源代码文件(并在同一命令行中列出引用的依赖项)? 在Linux上,当我安装了旧的csc和新的.net核心时,我得到了这些时间: [root@li1742-80 test]# time dotnet build Microsoft (R) Build Engine version 15.3.409.57025 for .NET Core Copyright (C) Microsoft Corporation. All rights reserved. test -> /root/test/bin/Debug/netcoreapp2.0/test.dll Build succeeded. 0 Warning(s) 0 Error(s) Time Elapsed 00:00:03.94 real 0m7.027s user 0m5.714s sys 0m0.838s [root@li1742-80 test]# time csc Program.cs Microsoft (R) Visual C# Compiler […]

使用Roslyn解析/转换/生成代码:我的目标是太高还是太低?

(我正在尝试通过从vs生成的设置文件生成接口和包装类来解决Application.Settings / MVVM问题。) 我想做的是: 从文件中解析类声明 仅基于类的(非静态)属性生成接口声明 生成一个实现此接口的包装类,在构造函数中获取原始类的实例,并将所有属性“管道”到实例。 生成另一个直接实现接口的类。 我的问题是双重的: 我吠叫错了树吗? 我会更好地使用Code-Dom,T4,Regex(!)来实现这个目标,还是部分原因? (我不介意一些额外的工作,因为这主要是一种学习经历。) 如果罗斯林是要走的路,我应该关注哪一点? 我有点天真地希望有一些方法可以走树并吐出我想要的东西,但是我无法理解是否/如何使用SyntaxRewriter来实现它,或者是否要使用流畅的结构,多次查询源我需要的位。 如果你想评论MVVM方面,你可以,但这不是问题的主旨:)

如何使用Roslyn编译C#解决方案?

我有一个软件,可以根据用户操作为C#项目生成代码。 我想创建一个GUI来自动编译解决方案,所以我不必加载Visual Studio只是为了触发重新编译。 我一直在寻找机会与Roslyn一起玩,并决定尝试使用Roslyn而不是msbuild来做到这一点。 不幸的是,我似乎找不到以这种方式使用Roslyn的任何好资源。 谁能指出我正确的方向?

未定义或导入奇怪的诊断错误,预定义类型System ….

解析一个非常基本的.NET 4.6应用程序时,我得到Roslyn诊断错误。 解决方案文件可以从那里下载https://github.com/dotnet/roslyn/files/2393288/DemoSolution.zip 依赖树看起来像这样: BLL – > DB 我在BLL项目中遇到以下诊断错误: Roslyn解决方案和项目构建正常,但仍然存在这些错误。 也许错误是误导性的,我需要在某种程度上配置项目? 知道如何解决这些错误吗? 以下是用于解析文件的代码: var properties = new Dictionary { [“DesignTimeBuild”] = “true”, [“CheckForSystemRuntimeDependency”] = “true” }; var workspace = MSBuildWorkspace.Create(properties); workspace.WorkspaceFailed += (sender, args) => { }; workspace.LoadMetadataForReferencedProjects = true; Solution solution = workspace.OpenSolutionAsync(SolutionFilePath).Result; foreach (var p in solution.Projects) { foreach (var file in p.Documents) […]