问题标签 [clearscript]

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

clearscript - ClearScript:如何获取对象值

我有 ClearScript 可以做到

或者

如何在 C# 中获取数组中的值?

而且,要获得一种情况或另一种情况,我无法选择尝试/捕获,对吗?

0 投票
1 回答
309 浏览

javascript - ClearScript:停止将方法转换为 JavaScript 属性

这会将以下内容输出到 JavaScript:

如您所见,这些方法也被转换为 Json 属性。是否有可能(尽可能少的样板语法)只发送属性?类似 Expando 的对象也是如此。

下面是可行的,我可以用一些扩展方法替换一些样板,但如果我能完全摆脱所有样板就更好了。

0 投票
1 回答
415 浏览

javascript - ClearsSript V8ScriptEngine TypeError:form.Show 不是函数

我将MS ClearScript 库用于系统中的一些动态部件。我有一些已经在 .NET(C#) 代码中创建的对象列表,这些对象用作函数使用的描述。像这样(Javascript):

在此示例中,使用静态方法获取MyFormClassName具有 ID的类。该方法返回一个带有在 .NET(C#) 代码中创建的ID的实例。有一种方法可以在实例中显示带有参数的窗体。FormIdMetaData.GetClassMyFormClassNameFormIdShow()

但是当我调用一个Show()方法时,我得到一个错误:

form.Show 不是函数

引擎包含一个对象Properties,但没有方法。引擎不知道对象Type。当我使用AddHostObjectwith nameform时,它​​工作正常,但我不知道将来会使用什么变量名。

有谁知道我如何在 V8ScriptEngine 中使用 .NET (C#) 对象方法?是否可以不每次都注册主机对象以供对象方法使用?

0 投票
1 回答
557 浏览

javascript - 如何使用 Clearscript 将 CLR 类型的原生 JS 数组转换为 CLR 数组

我正在考虑将我们的应用程序从使用JavaScript.NET (Noesis) 转换为使用 ClearScript。

我们的应用程序包含大量用户创建的用于财务计算的 Javascript 算法/表达式 -如果可能,我宁愿避免更改这些

目前在 JavaScript.NET 中,许多用户定义的算法都遵循创建包含主机类型的 JavaScript 数组并将其作为参数传递给另一个主机类型上的函数的模式。使用 JavaScript.NET,这种转换“可以正常工作”。请参阅下面的代码了解我正在尝试做的事情:

注意:我知道我可以使用它创建一个主机数组params = host.newArr(MyType, 2);,这将起作用 - 但这意味着修改所有用户维护的 JavaScript,我真的很想避免。

0 投票
1 回答
601 浏览

c# - 在线程中使用 ClearScript

我有一个生成多个线程的 C# 应用程序。我在 .NET 框架 4.7.1 上。在这些线程中,执行工作并且该工作可以执行用户定义的脚本函数。我使用 ClearScript 作为脚本引擎,出于这个问题的目的,我使用的是 VBScriptEngine。这是一个演示我的问题的示例应用程序:

Evaluate()函数中,我收到以下错误: System.InvalidOperationException: “调用线程无法访问此对象,因为不同的线程拥有它。”

我了解 ClearScript 已实现线程亲和性,并且衍生线程无法访问全局定义的引擎。那么我的替代方案是什么?为每个新线程创建一个新的 ClearScript 实例?这似乎非常浪费,并且会产生大量开销——我的应用程序将需要处理数千个线程。无论如何,我继续尝试了这种方法 - 虽然它确实有效(一段时间) - 最终得到了一个错误。这是我的示例应用程序的修订版:

新的 VBScriptEngine()调用中,我现在开始得到:System.ComponentModel.Win32Exception: '没有足够的存储空间来处理这个命令'。

我不确定是什么导致了该消息,因为应用程序没有占用大量 RAM。

我意识到这个示例应用程序正在同时启动所有线程,但我的完整应用程序确保只有 4 个线程在运行,并且我仍然会在一段时间后收到此消息。我不知道为什么,但我也无法摆脱这条消息——即使在重新启动应用程序和 Visual Studio 之后也是如此。稍微澄清一下导致此消息的原因会很有用。

所以我的问题是 - 如果我只需要,比如说 4 个线程,一次运行 - 有没有办法我可以创建 4 个 VBScriptEngine 实例并将其重用于每个新线程调用?甚至主线程上只有 1 个 VBScriptEngine 实例,每个新线程都共享它?

0 投票
1 回答
982 浏览

c# - 如何使用 ClearScript 将 JavaScript 数组传递给主机?

我正在尝试将 JavaScript 数组传递给主机函数,但找不到有关如何使用 ClearScript 执行此操作的文档。我原以为它会这么简单,但事实并非如此。

有了这段代码,我得到Error: The best overloaded method match for V8SScript1.myHostType.print(string, object[])' has some invalid arguments.'

这是我能找到的最接近解决方案的东西。没有更好的方法吗?

0 投票
1 回答
68 浏览

c# - 调用字符串方法时出现 ScriptengineException

当我使用以下代码段时,我得到一个 ScrptEngineException,该对象不支持该属性或方法。

我尝试了其他一些字符串函数,如 IndexOf、ToArray (Extension) 和其他一些,但似乎不起作用。

有人可以帮我吗?

0 投票
1 回答
97 浏览

c# - 进程调试管理器 (PDM) 安全问题

我对 AD 中的所有计算机都有问题:

在使用调试标志创建 VBScriptEngine 后出现此错误:未提供所需的模拟级别,或者提供的模拟级别无效。

问题出在这条线上:

其中 processDebugManager 是 COM:

模拟在当地政治中启用。

任何想法可能是什么限制?

0 投票
1 回答
749 浏览

javascript - ReferenceError:使用 ClearScript(V8ScriptEngine) 时未定义 XMLHttpRequest

我正在使用 V8ScriptEngine 从 C# 调用 javascript 函数的 Execute 方法,但出现错误 ReferenceError: XMLHttpRequest is not defined。我安装了像 Xhook 这样的 nuget 包但无法解决。请帮我解决这个问题或建议从 javascript 函数调用 api 的方法并使用 ClearScript(v8ScriptEnigne) 从 c# 调用函数。

Javascript函数:

C# 代码:使用 V8ScriptEngine 从 c# 调用 javascript 函数

0 投票
1 回答
982 浏览

c# - 无法加载文件或程序集“ClearScriptV8-32.DLL”或其依赖项之一。指定的模块无法找到