问题标签 [roslynpad]

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 回答
1400 浏览

c# - 在 RoslynPad 中使用扩展方法

我尝试理解类似于此代码的扩展方法

这是我在RoslynPad中的代码:

但我得到这个错误

错误 CS1109:扩展方法必须定义在顶级静态类中;PersonExtensions 是一个嵌套类

我发现这个问题extension-methods-must-be-defined-in-a-top-level-static-class-并且答案很好。

添加namespace Foo退货

错误 CS7021:无法在脚本代码中声明命名空间

roslynpad 似乎在幕后添加了一些东西。那么如何确保我的扩展方法是在顶级静态类中定义的呢?

0 投票
1 回答
645 浏览

roslynpad - 从另一个引用一个 RoslynPad 脚本

我想做的是从另一个脚本中引用一个脚本。

实现这一点的一种方法可能是使用程序集。RoslynPad 允许将脚本编译成程序集。这是我到目前为止所尝试的。

脚本 A,编译为 SOME_PATH\thing.dll

脚本 B

这给出了错误“找不到类型或命名空间'Thing'......”所以我尝试了以下操作。

这给出了以下错误“类型名称'事物'不存在于类型'程序'中”。

有没有办法“编译并保存程序集”,然后从另一个脚本中引用它?或者,是否有更直接的方法可以在脚本之间交叉引用?

0 投票
1 回答
744 浏览

c# - 是否可以在 RoslynPad RoslynCodeEditor 控件中为 globalsType 的对象全局包含智能感知?

我一直在使用 RoslynCodeEditor 控件并试图找到一种方法将我的全局对象传递给 RoslynCodeEditor 并在我的脚本中进行智能感知。

有谁知道在使用 RoslynCodeEditor 控件编辑我的脚本时如何授予对上下文对象属性或方法的访问权限?

0 投票
1 回答
352 浏览

c# - Roslynpad 设置包装上下文

我在将上下文类设置为 WPF RoslynPad RoslynCodeEditor 上的代码块时遇到问题。

我已经有 codehighlightning 和代码完成,但我不想为代码设置上下文,因此我可以调用方法的覆盖,而无需编写包装类。

没有包装类的代码示例

是否可以使用 roslyn host 设置代码的包装类上下文?

如果我对包装类进行编码,它就可以工作。

带有包装类的代码示例

0 投票
1 回答
875 浏览

c# - 有没有办法“封顶” RoslynPad 的 Roslyn 的 IntelliSense?

我实际上正在将令人惊叹的RoslynPad集成到 WinForms 应用程序中并且工作得非常好。

集成的重点是允许用户输入一些 C# 代码,以便将来使用。

事情是我对“限制”用户感兴趣,这样他就可以使用一些系统甚至 LinQ 功能。我不想让用户认为他被允许使用System.IO和其他人。当然我不能阻止他/她打字System.IO.File.Delete,但如果没有将System.IO's 程序集加载到 RoslynPad 的 IntelliSense 中,肯定会有所帮助。

用户输入的源代码将在本地编译,然后保存到数据库中。我只为编译添加了一些必要的程序集,所以如果System.IO它不能编译,当然。

正如我所解释的,我只想限制 Intellisense,因此他们认为他们无法访问几乎整个 .NET 框架。

编辑:添加了实际完成的实际实现。我正在将“RoslynPad.Roslyn.Windows”和“RoslynPad.Editor.Windows”程序集加载到编辑器中。

0 投票
1 回答
274 浏览

c# - Visual Studio 扩展中的 RoslynPad FileNotFoundException

有没有人成功地在 Visual Studio Extension (VSIX) 中运行 WPF RoslynPad 编辑器(仅供参考:我使用的是 Visual Studio 2015 Enterprise)?

当尝试像这样在 VSIX 中初始化 Roslyn 主机时:

我收到以下错误:

无法加载文件或程序集 'System.Collections.Immutable, Version=1.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' 或其依赖项之一。系统找不到指定的文件。":"System.Collections.Immutable, Version=1.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"

堆栈跟踪是:

请注意,相同的代码在 RoslynPad 提供的“RosylnPadPelSample”WPF 应用程序中工作。

令我印象深刻的是它正在寻找 System.Collections.Immutable 版本 1.2.0.0(我相信这是 System.Reflection.Metadata.dll 中的依赖项),因为示例应用程序不包含此文件。它有 1.2.0.1 版本(与我的扩展相同的版本),但有一个绑定重定向来弥补它的遗漏:

如果我明确添加System.Collections.Immutable1.2.0.0 版本作为参考,那么我会从 RoslynPad 得到相同的异常,但这次它找不到System.Collections.Immutable1.2.0.1 版本!绑定重定向似乎在 Visual Studio Extensions 中没有生效。有谁知道如何在 Visual Studio Extensions 中完成绑定重定向或如何解决这个问题?

0 投票
0 回答
95 浏览

c# - Roslyn 与 fastcoloredtextbox 集成以获取 c# 的语法错误

我目前正在制作一个轻量级的 c#,vb ide,有谁知道我如何使用 roslyn 在 fastcoloredtextbox 中进行 c#、vb 代码完成和 c#、vb 代码修复?问题:如何从 fctb 文本中动态获取语法错误,以及如何使用 roslyn api 获得解决 fctb 中此语法错误的方法?

我已经学会了如何使用 roslyn 获取完成列表,但是如何获取语法错误?我还需要动态获取所有内容(例如在用户输入代码后立即在 fctb 中向用户显示代码完成和语法错误)你可以看到代码在这里从代码中的位置获取完成列表

0 投票
1 回答
463 浏览

c# - 程序集清单不匹配包安装无法解决

清单错误没有解决,我尽力了(甚至将 Roslyn 源代码链接到我的项目)。以下是产生错误的代码部分。该项目是 WINFORM 并在 Element Host 中加载 Roslyn 程序集。

重现错误的步骤

  1. 从解决方案中删除所有包 Get-Package | 卸载包 -RemoveDependencies -Force

  2. 将框架设置为 4.7.2 并构建平台:x86

  3. 删除所有 System.* 引用
  4. 添加引用 System、System.Drawing、System.Windows、System.Windows.Forms、System.Data
  5. 安装包 roslynPad.Editor(最新:即 1.0.4)5.1。安装包 roslynPad.Windows(最新:即 2.4.0)5.2。安装包 roslynPad.Roslyn(最新:即 2.4.0)
  6. 参考 PresentationCore、PresentationFramework、WindowsBase、WindowsFormsIntegration、UIAutomationProvider
  7. Goto Reference Dlls 全选(在 Visual Studio 中),并使 Copy Local = true。
  8. ReBuild 发现 23 个(不同版本之间的冲突)警告。
  9. 检查详细构建日志(详细程度设置为详细)

9** Stackoverflow 建议:在某些帖子上重新编译程序集。删除所有软件包并添加 roslynPad 的来源。

10 执行以下操作,添加源并重置依赖项

代码:

0 投票
1 回答
138 浏览

c# - 脚本运行时的 C# dlr LanguageSetup 设置

请问有人知道如何使用 Microsoft.CodeAnalysis.CSharp.Scripting设置 C# ScriptEngine

谢谢你。

0 投票
1 回答
139 浏览

c# - 如何在 RoslynPad 中显示 OpenFileDialog

我使用以下代码显示OpenFileDialog使用RoslynPad,它编译并运行,但没有出现对话框,因此代码段将永远运行:

OpenFileDialog使用 RoslynPad的正确方法是什么?

环境:

  • 操作系统:Windows 10 Pro 64 位 (2004)
  • RoslynPad:由最新的 master 分支构建。
  • .NET 核心:3.1.402