问题标签 [roslyn]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3631 浏览

c# - Roslyn 将文档添加到项目

我正在运行 roslyn ctp2

我正在尝试将新的 html 文件添加到项目中

这导致不写入任何更改。我正在尝试让新的 html 文件出现在 VS 中

0 投票
1 回答
1821 浏览

c# - 使用 Roslyn 将班级成员添加到特定位置?

我正在使用 ClassDeclarationSyntax.AddMembers 方法将私有字段添加到类中。字段出现在类中,但我想知道如何将字段添加到特定位置。截至目前,它们被添加到 #if 指令内的类末尾,该指令在运行代码生成时恰好评估为 true。

运行代码:

将导致:

我想得到这个结果:

0 投票
1 回答
155 浏览

visual-studio - Roslyn 中的对话窗口

我想在 Visual Studio 中使用 Roslyn 实现重命名重构。为此,我希望用户输入将赋予所选变量的所需名称。如何提示用户编写文本?有没有办法显示带有输入的对话框窗口?

0 投票
1 回答
4440 浏览

c# - Roslyn 流利的语法为多行 lambda 创建表达式树

我正在编写一个基于 Roslyn 的自定义工具,它试图通过在构建时将给定的多行 lambda 重写为表达式树来根除CS0834 。

编辑:此时,我只针对匿名多行 lambda。

例如:

这样就可以正确编译。虽然我可以弄清楚转换给定代码所需的 Expression.(blah) 语法,但使用 Roslyn 进行转换完全是另一回事。也许我只是不太了解 Roslyn Syntax.(blah) API 来翻译这个原始 lambda

有人可以帮我编写 Roslyn Syntax.(blah) 语法,它会生成一个如下所示的表达式树吗?

一旦我有了一个起点——我应该能够弄清楚或至少开始翻译这个项目中的简单案例。

非常感谢,非常感谢您的帮助。

0 投票
1 回答
117 浏览

c# - 如何确定哪个 SemanticModel 实例解析 ExpressionSyntax

为了找到我调用的 ExpressionSyntax 实例的目标,mySemanticModel.GetSymbolInfo(myExpressionSyntax).
我有几个 SemanticModel 实例,每个实例都与代码文件的语法树相关。

我想迭代语义模型并找到合适的模型来返回符号信息,但是我看不到如何在不使用异常的情况下测试合适的语义模型。

我需要完成以下代码:

0 投票
1 回答
4368 浏览

c# - 罗斯林脚本

嗨,我想使用 Roslyn 在我的应用程序中编写脚本。但我有新的(九月)版本,我很困惑。我想用一些简单的功能执行文件。例如:

我发现了一些关于它的文章,例如acticle。有一些方法可以做到,但在我的版本中,我不Session.Create() 想像 IronPython 脚本那样使用它

就像是:

或者

动态 d = callFunction(m);

有可能还是我必须使用 IronPython 脚本?

0 投票
1 回答
348 浏览

c# - 如何从 Roslyn 脚本引擎限制对程序集中成员的访问?

我正在试验 Roslyn 脚本引擎。使用以下代码,我设置了我的脚本引擎。

然后我使用以下行执行脚本:

该脚本包含对我程序集中类的静态函数的非常简单的引用。

在输出窗口中,该函数仅打印到控制台。所以我展示了我可以调用我的程序集的公共静态成员,而无需将“HostObjectModel”传递给脚本引擎。我想防止这种情况发生。我希望能够仅注册脚本引擎可以访问的特定成员(函数、变量或属性),而不能注册其他成员。

知道如何做到这一点吗?

0 投票
3 回答
774 浏览

c# - 如何在 Roslyn 中为方法创建没有 ref 或 out 的命名参数?

在为构造函数创建命名参数时,我遇到了一个问题,我唯一可用的构造函数要求refOrOutKeyword SyntaxToken. null不允许通过,而且Syntax.ParseToken("")失败。Syntax.Token(SyntaxKind.RefKeyword)并且Syntax.Token(SyntaxKind.OutKeyword)两者都不合适,因为它们插入了refor out

我也没有找到任何合适的文档来说明如何创建命名参数。

0 投票
3 回答
3133 浏览

c# - 具有智能感知功能的内置 C#/VB.Net 编辑器 - Roslyn、VSTA 还是其他?

我需要在我的应用程序中提供脚本功能,允许客户使用我们的对象模型扩展其功能。我希望提供某种带有智能感知的集成 C#/VB.Net 编辑器,但是在查看了 AvalonEdit 和 ScintillaNet 等产品之后,它们似乎并没有提供真正的代码完成功能,只是一个 API,您可以在其中提供自己的列表出现在弹出自动完成列表中的项目。

因此,我想知道 Roslyn 是否提供了任何此类功能?从我遇到的教程和示例来看,Roslyn 似乎实际上只是一个编译器服务。

作为最后的手段,客户可以使用 VS Express 之类的东西,但集成编辑器显然更好一些。

(我还遇到了 Visual Studio Tools for Applications,这听起来很有希望;但是在线资源已有几年的历史,而且文档/教程不存在,所以我对此一无所知)。

0 投票
1 回答
847 浏览

c# - 如何在asp.net中更改实现背后的代码

我正在探索 roslyn 框架作为 asp.net 的动态代码生成器的可能实现。到目前为止,它看起来很神奇。目前我被困在为 asp.net 页面(Web 应用程序)的实现背后生成代码。我设法创建了一个程序集,其中包含 page.design.cs 和 page.aspx.cs 代码,但我不知道如何将结果链接到现有的 .aspx 页面(当我设置代码时,这种情况效果很好在我的项目中的(一个)单独的类后面,并且在Inherit属性中我将 namespace.class_name 设置为它)。我已经改变了Inhertit属性指向类,这是roslyn代码生成的结果。但是,这似乎不起作用,因为(我猜).aspx 页面期望实例后面的代码在编译时可用,但我试图在运行时提供此定义。

有什么办法可以欺骗 .aspx 使其认为它具有定义背后的代码,我可以在运行时提供这些代码,以及如何将我的自定义代码后面的类与 .aspx 页面链接?

最好的祝福。