问题标签 [managed-jscript]
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.
.net - 在 .NET 桌面和浏览器之间共享 JavaScript 代码
我有一组核心、复杂的 JavaScript 数据结构/类,我希望它们能够在浏览器中作为 JavaScript 使用,并在带有 .NET 3.5 的桌面上运行。是否可以将 Web 友好的 JavaScript 编译成我的 C# 代码可以访问的程序集?
- 托管 JScript - 是否有可用的编译器来生成可以在桌面 CLR 上运行的东西?我只看到了 Silverlight 运行时的已发布示例。听起来它不像在桌面上正式可用,但我愿意尝试一些不那么幸运的东西,比如我可以用 Silverlight 工具编译然后在桌面 CLR 上运行吗?
- JScript .NET - 听起来它有足够的自定义语言扩展,在浏览器中运行相同的代码真的很难,但也许有办法......?
如果这些都不起作用,我想我的选择是:
- 有一个 C# 版本和一个 JavaScript 版本,我必须保持同步(糟糕)。
- 编写一个在编译时运行的预处理器,将我的 JavaScript 转换为 JScript .NET 或我可以编译为 .NET 程序集的东西。
- Script#:看起来这会将 C# 代码转换为 JavaScript 代码。不太好,因为我希望能够直接大量调整 JavaScript 代码,但它可以工作。
任何人都成功地使用了这些选项?
asp.net - 在哪里可以下载 DLR 的托管 JScript?
动态语言运行时的最新版本(0.9 稳定版)包含 IronPython 和 IronRuby,但不包含托管 JScript。
有谁知道我可以在哪里下载最新版本的托管 JScript 以用于 ASP.NET 和/或 WPF?
如果您不知道,JScript.NET 和托管 JScript 是完全不同的东西。我正在寻找的是托管 JScript。
mono - JScript.NET 可以用于编写 .NET 应用程序的脚本吗?
由于 MS似乎已经在服务器端(ASP.NET Futures)和客户端(Silverlight)的最新 DLR 中杀死了托管 JavaScript,是否有人成功使用过时的 API 来允许使用 JScript.NET 对其应用程序对象进行脚本编写和/或可以解释如何做到这一点?如果 Mono/JScript 解决方案稳定且满足以下要求,它也可能是可接受的。
我们有兴趣从使用 Microsoft JScript 引擎和 ActiveScript API 的脚本宿主升级到具有更高性能和更容易扩展的东西。我们有超过 16,000 个服务器端脚本,源代码超过 42MB,因此重写为另一种脚本语言是不可能的。
我们的具体要求是:
- 性能明显优于 Microsoft JScript (ActiveScript) 引擎
- 更好的运行时性能和/或
- 保留预解析或编译的脚本(不要在每次运行时重新解析)
- 较低或相等的内存消耗
- 完全兼容 ECMA-262 ECMAScript
- 可以容忍一点移植
- 将自定义对象注入脚本命名空间
- .NET 对象(不是硬性要求)
- COM 对象或包装在 .NET 中的 COM 对象
- 从脚本实例化 COM 对象
- à la "new ActiveXObject(progid)"
- 考虑到前面的低优先级
- 包含文件
- 将“帮助脚本”预加载到脚本执行上下文中
- “包含”函数或语句(易于创建,鉴于上述情况)
- 支持全局范围内的代码
- 在全局范围内执行代码
- 保留在全局范围内初始化的值
- 从全局范围中提取值
- 在全局范围内注入和替换值
- 调用脚本定义的函数
- 带参数
- 并可以访问先前初始化的全局范围
- 源码级调试
- 商业或开源支持
- 过时的 API
pinvoke - 如何在提琴手 JScript.NET 函数中执行 PInvoke?
Fiddler使用.NET JScript 语言编写脚本。调用 .NET 方法和启动 .NET 类很容易,但我不知道如何用属性装饰事物,因此我不知道如何 PInvoke。
c# - C# & VSAEngine - 用指数计算字符串表达式?
我这里有个问题,所以我需要帮助:)
当我用 jscript vsa 引擎计算这样的表达式“(10.5 + 3.5 / 2)* 2”时,没关系,但现在我有一个问题......如果在上面的字符串中,我也想计算一个指数(10.5 + 3.5 / 2)* 2 + exp(2),最好的方法是什么?
PS: Math.Exp(); -- 不是一个选项。
c#-4.0 - C#<-->JScript:不可见的数组?
我有一个复杂的程序,它给了我这个明显的幻觉错误......
我将在我操纵的这个小示例程序的帮助下开始解释,它可以为运行它的任何人抛出我美丽的异常。
抛出的异常是“索引越界”,它是从 JScript 中抛出的。问题?就是没有数组!
这段代码在做什么:首先,通过在运行时编译一个“导出”一个 eval 的类来初始化一个 JScript 解释器(可以做一个 dll,但在这种情况下我没有)。
然后编译一个 C# 程序集,一个“导出”一些用户代码的程序集(initCS 中的变量 _code 最初是通过读取文本文件加载的)。
新编译的类初始化后(调用init()),需要两个程序集(JScript和C#)交互,所以需要在它们之间传递数据,想到了使用AppDomain。
注意:在 C# 程序集中定义了一个 Hashtable2,因为我在其中放入了一个 ITEM 方法,可以用来替代公共属性 this[]: 以这种方式调试更容易(例如,在访问值时显示一个神圣的 MessageBox )。
因此,我将 initCS 中实例化的类传递给 JScript,而 JScript 读取内部 Hashtable (HT)。我需要做的是评估 Hashtable 中的数据,因为它应该能够动态地改变自己。
如果我 eval 不是从 Hashtable 中获取的字符串,一切正常——在我获取 Hashtable 中的任何内容并将其传递给 eval 的那一刻,就会发生异常。注意:字符串是完全相同的(即使将它们与 Equals 进行比较)并且它们有效,不同之处仅在于它们来自哪里。
当 JScript 函数 edata 对取自 Hashtable 的字符串进行求值时,JScript 会说“索引超出范围”,但正如我所说:我在那里看不到任何数组......(也许问题正是如此,不知道) .
我承认我在 JScript 方面有自己的局限性,所以如果有人能帮助理解 WTF 正在发生的事情,我会非常高兴。