问题标签 [csharpscript]

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 投票
1 回答
1607 浏览

c# - CSharpScript:动态脚本参数名称

我正在尝试使用 Roslyn 执行用户在运行时定义的 C# 代码,类似于此示例:

从这里复制的示例

我的问题是脚本中使用的变量名在编译时是未知的。换句话说,我不知道我的全局类应该使用什么成员名称以及会有多少成员(脚本参数)。

我尝试使用 ExpandoObject 来解决问题,但无法使其正常工作。ExpandoObject 应该在这种情况下工作吗?还有其他方法可以解决问题吗?

更新

对于我的用例,最好的解决方案可能是使用System.Linq.Dynamic

0 投票
1 回答
133 浏览

c# - 运行时 MissingMethodException

在运行使用 CSharpScripting 类的代码时,我们在运行时遇到了一个奇怪的问题。

这是重现错误的示例代码:

测试不运行,它编译但在运行时抛出

任何帮助表示赞赏!

0 投票
1 回答
50 浏览

servicestack - SharpScript .ss 文件可以连接到数据库,但相同的代码在提供给本地网络浏览器时不起作用?

我有一个 SharpScript .ss 脚本文件,其中包含一些小代码,用于轮询数据库并格式化要显示的内容。命令行输出的输出变得太不规则了,所以我想生成 html 并查看类似的内容。使用 .ss 文件中的 htmlDump 生成 html 工作正常,但是当我从他们的模板之一创建一个小型 Web 项目时,数据库连接停止工作?

如何为网站指定连接字符串与 .ss 脚本文件有什么区别?

我只是在文件的开头有常规的 args 规范

这在 .ss 脚本文件中运行良好,然后我可以执行类似的操作

并从 textDump 中获取计数 (21) 和表格等输出。

然后我从模板创建了一个“bare-webapp”,web new bare-webapp Name并添加了一个具有相同内容的新 html 文件,但这不起作用?如果我做

我可以看到 db 参数在浏览器中呈现为“mssql”,就像在参数输入中一样,但是没有列出表名,也没有 sql 查询起作用。我没有看到任何错误消息或任何东西,所以我不知道发生了什么?我认为 SharpScript 能够以类似于 .ss 脚本文件如何访问数据库的方式呈现 html 页面?

0 投票
1 回答
499 浏览

c# - 如何将包导入/添加到 C# 脚本文件?

最近我一直在练习 C# 并学习基础知识,我发现我可以使用 dotnet-script 创建一个脚本文件真的很酷。但是我在网上没有看到太多支持,所以我不知道我可以在多大程度上拿这些脚本文件来测试东西。所以我想知道如何将 System.Drawing.Point 导入 .csx 文件,以及我还能用它们做什么。

0 投票
1 回答
784 浏览

c# - 在 Blazor wasm 中使用 CSharpScript 时出现 System.IO.FileNotFoundException

我正在尝试在 Blazor wasm 应用程序中使用 CSharpScript,使用简单的测试EvaluateAsync

抛出:System.IO.FileNotFoundException: Could not find file "/mscorlib.dll"

我正在使用 Blazor wasm 3.2.0-preview3.20168.3

编辑:这是完整的代码index.razor

这是控制台输出:

编辑 2:在深入研究该问题后,我们将其追溯到以下几行Script.cs

无论我们通过什么选项,这将始终在编译时调用,MetadataReference.CreateFromAssemblyInternal尝试从磁盘加载文件。因此,从磁盘加载程序集似乎被硬编码到进程中。我们正在寻找一种干净的方式来覆盖它。

我们已经成功地使用 HttpClient 从流中加载程序集:

但这并不重要,只要 CSharpScript 在从磁盘编译期间加载另一组程序集

0 投票
1 回答
433 浏览

c# - 如何从动态加载到自定义可收集 AssemblyLoadContext 的 DLL 中使用具有“全局”类型的 CSharpScript

脚本评估代码片段:

代码分析程序集和全局类型程序集被加载到同一个 Collectible AssemblyLoadContext... 还尝试通过 ScriptOptions 显式添加引用/导入,但得到相同的以下错误:

内部异常 1:InvalidCastException:[A]TestLibrary.TestClass 不能转换为 [B]TestLibrary.TestClass。类型 A 源自 'TestLibrary,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null',位于位置 '...\TestLibrary.dll' 的上下文 'Default' 中。类型 B 源自 'TestLibrary,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null',位于位置 '...\TestLibrary.dll' 的上下文 'Default' 中。

0 投票
1 回答
234 浏览

c# - c#脚本Roslyn会话不接受参考

我正在尝试在 ac# .net 应用程序中执行一些任意的 c sharp 脚本,但我尝试了多种方法来添加程序集的外部文件引用,但它似乎永远不会抱怨我错过了程序集。代码如下:

// 我的全局类

无论我如何添加引用或尝试执行我得到的脚本:

Microsoft.CodeAnalysis.Scripting.CompilationErrorException:(1,1):错误 CS0012:类型“MVEntry”在未引用的程序集中定义。您必须添加对程序集 'Microsoft.MetadirectoryServicesEx, Version=4.1.4.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' 的引用

我可能正在做一些明显错误的事情,但我只是看不到它,事实上,当我观看 scriptOptions 变量时,似乎没有任何元数据元素。任何帮助将不胜感激。

0 投票
1 回答
533 浏览

c# - “选择”的定义在 CSharpScript.EvaluateAsync 中不起作用

我在使此代码正常工作时遇到问题。即使我认为我正在添加对 ScriptOptions 的正确引用,CSharpScript.EvaluateAsync 似乎也无法理解 Linq 'Select' 命令。这里的目标是使用 EvaluateAsync 运行基于字符串的 Linq 查询。提前感谢您的帮助。

0 投票
1 回答
106 浏览

reference - Roslyn CSharpScript 和 DateTime 参考错误

错误 CS0246:找不到类型或命名空间名称“DateTime”(您是否缺少 using 指令或程序集引用?)

运行以下代码时:

看来我错误地添加了参考。有人可以指出我正确的方向吗?

0 投票
0 回答
42 浏览

c# - 有没有办法在 C# 脚本 (CSX) 中创建条件引用?

我有一个需要引用 DLL 的 CSX 脚本,但 DLL 的位置不同;在设计时它在一个文件夹中,但在运行时它在另一个文件夹中。我尝试#r为这两个位置添加指令,但是当我运行调用脚本的应用程序时,我在用于设计时支持的应用程序上遇到错误。有什么方法可以对 DLL 进行条件引用,这样如果 DLL 不存在,脚本就会默默地跳过它?或者在它周围设置某种条件,以便只执行当前环境的正确引用?