roslyn相关内容

Roslyn 将如何帮助我避免重新编译以将更改部署到我的 ASP.NET 网站?

我对新的 Roslyn C# 编译器有点困惑. 一开始我认为这个新编译器可以在我的 ASP.NET MVC 网站中对 C# 代码进行更改,然后在浏览器中查看这些更改而无需重新构建项目/解决方案. 不过多读一些书,尤其是新的信息,我现在更加确信了. 是否可以使用 Roslyn 对 C# 代码进行更改,例如控制器类,而不必构建项目并且仍然能够看到更改? 解决方案 是的,Ros ..
发布时间:2021-07-10 19:33:28 C#/.NET

如何使用 Roslyn 创建基于结构的属性

我有以下代码来生成一个属性: 类型: types = new Dictionary();types.Add("Guid", SpecialType.System_Object);types.Add("DateTime", SpecialType.System_DateTime);types.Add("String", SpecialType.System_String);types.Add ..
发布时间:2021-07-10 19:33:25 C#/.NET

使用 Roslyn 确定类是否是抽象的

我在这里搜索过,但没有找到答案. 我如何知道类是否是来自 ClassDeclarationSyntax 的抽象类. 这是我的代码: public override void VisitClassDeclaration(ClassDeclarationSyntax node){var className = node.Identifier.Text;var namespaceName ..
发布时间:2021-07-10 19:33:22 C#/.NET

VS2019 Roslyn 编译器通用约束方法解析

我们最近在我们的代码库中发现了一个问题,VS2019 编译的代码很好,但 VS 2017 失败了. 我为 Union 创建了一个扩展方法,它有一个通用的 ISet 作为通用约束 使用系统;使用 System.Collections.Generic;使用 System.Linq;公共静态类扩展{public static S Union (this S self, IEnumerable o ..
发布时间:2021-07-10 19:33:20 C#/.NET

Visual Studio 2017 网站菜单“启用 C# 6/VB 14"无法加载 Nuget 包

一段时间以来,每当我单击网站菜单“启用 C# 6/VB 14"时,我都会收到一条异常消息,指出在以下主要资源中找不到“Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform 1.0.2"): "C:\Program Files (x86)\Microsoft Web Tools\Packages" 我检查了文件夹,发现它已升级到 ..

中止 roslyn 脚本执行

我想为通过 Roslyn 执行的脚本实现超时机制,所以我需要一种方法来中止脚本执行.到目前为止,我找到的唯一解决方案是在线程内执行脚本并终止它,但这显然是一个有缺陷的解决方案. 有没有更好的方法来做到这一点? 解决方案 除了你启动一个单独的进程并杀死它(为了避免 Thread.Abort() 的标准陷阱),那就是尽你所能.鉴于脚本代码可能或多或少是任意的,真的没有比这更好的选择了.只 ..
发布时间:2021-07-10 19:33:14 C#/.NET

VS2015 因“A new guard page..."崩溃刚编辑源代码时

问题: Visual Studio 2015 不断因此错误而崩溃: 无法为堆栈创建新的保护页 背景: 在其他上下文中已经有一些关于此错误的问题,但它们似乎都与在 Visual Studio 中与遗留 COM 代码或设计器工具的互操作有关.我只是想编辑一个 C# 源文件. Windows 服务/一个新的无法为堆栈创建保护页 不能为堆栈创建新的保护页创建 以前 ..
发布时间:2021-07-10 19:33:11 其他开发

从 Roslyn 方法调用中的相应参数获取方法参数的名称

我想知道是否有一些现有的逻辑可以通过查看特定方法/构造函数的调用来获取有关参数在其包含方法/构造函数签名中的定义的名称(或任何其他相关信息).基本上,我只是希望能够获得将作为参数传递给调用的变量的默认名称.所以,如果一个方法被定义为: public void Foo(对象firstParam,对象secondParam,对象thirdParam) 我希望能够说以下调用的第二个参数 objec ..
发布时间:2021-07-10 19:33:07 C#/.NET

如何在 Roslyn 中加载解决方案?

这是我曾经可以工作的代码: MSBuildWorkspace msBuild = MSBuildWorkspace.Create();解决方案 sln = 等待 msBuild.OpenSolutionAsync(solutionPath); 但现在我明白了: int pr = sln.Projects.Count();//是1而不是2. 和: int docs = sln.Projec ..
发布时间:2021-07-10 19:33:04 C#/.NET

使用 Roslyn 在区域琐事之间插入代码

如何在 Roslyn 中的区域指令后插入变量声明?我希望能够做这样的事情: class MyClass{#region myRegion#endregion} 为此: class MyClass{#region myRegionprivate const string myData = "somedata";#endregion} 我似乎找不到任何以这种方式处理琐事的例子. 解决方案 ..
发布时间:2021-07-10 19:33:01 C#/.NET

删除块的内容缩进

我正在编写带有代码修复功能的 Roslyn 诊断程序.如果有一个带有一个空 catch 块的 try 块,我想提供删除 catch 块并用其内容替换 try 块的选项.我的问题是 try 块内容的缩进.我尝试使用格式化程序,但行仍然缩进一级太多.这是我的代码: 私有异步任务RemoveTryCatchBlockAsync(文档文档,TryStatementSyntax tryBlock,Canc ..
发布时间:2021-07-10 19:32:55 C#/.NET

将 VsPackage 附加到 Roslyn 实例

我正在尝试创建一个使用 Roslyn 语言服务的 VsPackage.在 VsPackage 的属性下,我已将命令行参数更改为: /rootsuffix Roslyn 运行项目时,启动的 Visual Studio 实例正确使用 Roslyn.(我在打开的 .cs 文件名称旁边看到 [Roslyn]).但是,我的 VsPackage 没有部署到这个 Visual Studio 实例. 我 ..
发布时间:2021-07-10 19:32:54 C#/.NET

ISymbol.DeclaringSyntaxReferences 和 ISymbol.Locations 之间的区别

DeclaringSyntaxReferences 之间有什么区别Locations 属性在 ISyntax 接口? 解决方案 答案的线索在评论区: 声明符号的语法节点.如果符号在元数据中声明或隐式声明,则返回一个空的只读数组. 这意味着,Locations 还返回元数据引用声明和隐式声明的位置.您可以在 LocationsTests.cs 文件: var c = s.Get ..
发布时间:2021-07-10 19:32:39 C#/.NET

Roslyn CTP 作为虚拟控制台应用程序的替代品的稳定性如何?

我经常发现自己制作了一个虚拟的控制台应用程序来测试一些简单的东西.(例如 DateTime.Parse 如何像 YYYY-MM-DD-HH-MM-SS 格式的字符串?) 我知道 Roslyn 有 C# 交互窗口,允许在我的解决方案仍然打开的情况下在 IDE 中运行这样简单的测试.这是我真正想要的唯一功能. 但是 Roslyn CTP 的稳定性如何?它会搞乱我的 IDE 吗?当我不使用它 ..
发布时间:2021-07-10 19:32:31 其他开发

Roslyn C# 编译器是如何引导的?

我已经开始阅读有关“Roslyn"的新 C# 编译器,并想知道 Roslyn 编译器是如何编译的? 我知道需要 boostrapping 才能获得 "自托管编译器",我想知道 Roslyn 编译器是如何“引导"的? 解决方案 这是 C# 团队实际上(不是猜测)完成的,根据埃里克·利珀特: C# 1.0 到 5.0 编译器是用 C++ 编写的.很长一段时间——一年多——我们用 C# ..
发布时间:2021-07-10 19:32:25 C#/.NET

使用 Roslyn 获取项目中引用类型的列表

我想获取一个项目中所有使用类型的列表,例如: var x = 1;var y = x.ToString().GetType(); 代码应该返回System.Int32、System.String、System.Type. 我的速度太慢了...对于每个文件(语法树),我执行以下操作: var root = await syntaxTree.GetRootAsync();var nodes ..
发布时间:2021-07-10 19:32:22 C#/.NET