首页 > 后端开发 > C++ > 如何在 C# 中解析并执行 JavaScript 代码?

如何在 C# 中解析并执行 JavaScript 代码?

Linda Hamilton
发布: 2024-12-31 05:33:09
原创
610 人浏览过

How to Parse and Execute JavaScript Code within C#?

如何在 C# 中解析和执行 JS

提供的 C# 代码包含一个类 ScriptEngine,它充当 Windows 的包装器脚本引擎的 COM 组件。它支持 32 位和 64 位环境,并允许您解析和执行 JavaScript 代码。

代码示例提供了与脚本引擎交互的各种方式:

直接表达式求值:

Console.WriteLine(ScriptEngine.Eval("jscript", "1+2/3"));
登录后复制

这会计算给定的 JavaScript 表达式并打印结果(1.66666666666667).

函数调用,带有可选参数:

using (ScriptEngine engine = new ScriptEngine("jscript"))
{
  ParsedScript parsed = engine.Parse("function MyFunc(x){return 1+2+x}");
  Console.WriteLine(parsed.CallMethod("MyFunc", 3));
}
登录后复制

这定义了一个 JavaScript 函数,解析它,并使用参数 3 调用该函数,打印结果 (6)。

函数使用命名项和可选参数进行调用:

using (ScriptEngine engine = new ScriptEngine("jscript"))
{
    ParsedScript parsed = engine.Parse("function MyFunc(x){return 1+2+x+My.Num}");
    MyItem item = new MyItem();
    item.Num = 4;
    engine.SetNamedItem("My", item);
    Console.WriteLine(parsed.CallMethod("MyFunc", 3));
}

[ComVisible(true)] // Script engines are COM components.
public class MyItem
{
    public int Num { get; set; }
}
登录后复制

此示例演示了命名项的使用,它可以模拟/实现 HTML DOM 元素。它设置一个命名项“My”,并将属性“Num”设置为 4,并使用参数 3 调用该函数,打印结果 (10)。

该示例还演示了如何使用 CLSID脚本语言名称以利用快速 IE9“chakra”JavaScript 引擎:

using (ScriptEngine engine = new ScriptEngine("{16d51579-a30b-4c8b-a276-0ff4dc41e755}"))
{
    // continue with chakra now
}
登录后复制

提供了 ScriptEngine 类的完整源代码和示例用法供参考。它包括其他功能,例如:

  • 属性检索和设置
  • 脚本异常处理
  • 将命名根级项添加到脚本引擎的命名空间

以上是如何在 C# 中解析并执行 JavaScript 代码?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板