繁体   English   中英

如何在 C# 中加载带有 Jint 的 JavaScript 文件?

[英]How do I load a JavaScript file with Jint in C#?

我想使用 Jint 加载 JavaScript 文件,但我似乎无法弄清楚。 文档说我可以做类似engine.run(file1)的事情,但它似乎没有加载任何文件。 我需要对文件名做一些特别的事情吗?

这是我的 JavaScript 文件:

// test.js
status = "test";

这是我的 C#

JintEngine js = new JintEngine();
js.Run("test.js");
object result = js.Run("return status;");
Console.WriteLine(result);
Console.ReadKey();

如果我在Run中手动输入代码,它就可以工作。

object result = js.Run("return 2 * 21;"); // prints 42

我通过自己手动将文件加载到文本中找到了一种解决方法,而不是按此处提到的名称加载它: http://jint.codeplex.com/discussions/265939

        StreamReader streamReader = new StreamReader("test.js");
        string script = streamReader.ReadToEnd();
        streamReader.Close();

        JintEngine js = new JintEngine();

        js.Run(script);
        object result = js.Run("return status;");
        Console.WriteLine(result);
        Console.ReadKey();

我个人使用:

js.Run(new StreamReader("test.js"));

紧凑,只是工作。

更简洁(使用您的代码)

JintEngine js = new JintEngine();
string jstr = System.IO.File.ReadAllText(test.js);
js.Run(jstr);
object result = js.Run("return status;");
Console.WriteLine(result);
Console.ReadKey();

尝试

 using(FileStream fs = new FileStream("test.js", FileMode.Open))
 {
    JintEngine js = JintEngine.Load(fs);
    object result = js.Run("return status;");
    Console.WriteLine(result);
 }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM