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

如何在C#中加载带有Jint的JavaScript文件?,c#,javascript,jint,C#,Javascript,Jint,我想用Jint加载一个JavaScript文件,但我似乎无法理解。文档中说我可以执行类似于engine.run(file1)的操作,但它似乎没有加载任何文件。我需要对文件名做一些特殊的处理吗 这是我的JavaScript文件: // test.js status = "test"; 这是我的C# 如果我在Run中手动输入代码,它就会工作 object result = js.Run("return 2 * 21;"); // prints 42 试一试 我找到了一个解决办法,我自己手动将文件

我想用Jint加载一个JavaScript文件,但我似乎无法理解。文档中说我可以执行类似于
engine.run(file1)
的操作,但它似乎没有加载任何文件。我需要对文件名做一些特殊的处理吗

这是我的JavaScript文件:

// test.js
status = "test";
这是我的C#

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

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


我找到了一个解决办法,我自己手动将文件加载到文本中,而不是像这里提到的那样按名称加载:

我个人使用:

js.Run(new StreamReader("test.js"));
紧凑且工作正常。

更加简洁(使用您的代码)


System.Runtime.Serialization.SerializationException was unhandled Message=输入流不是有效的二进制格式。起始内容(以字节为单位)为:73-74-61-74-75-73-20-3D-20-22-74-65-73-74-22-3B-0D。。。Source=mscorlib StackTrace:at System.Runtime.Serialization.Formatters.Binary.SerializationHeaderRecord.Read(uu BinaryParser input)at System.Runtime.Serialization.Formatters.Binary.u BinaryParser.ReadSerializationHeaderRecord()@Daniel,我不确定,但重点是
Run()
需要执行脚本而不是文件名;尝试手动将文件内容读入字符串(
file.ReadAllText()
),然后尝试使用该字符串调用
Run()
)。
 using(FileStream fs = new FileStream("test.js", FileMode.Open))
 {
    JintEngine js = JintEngine.Load(fs);
    object result = js.Run("return status;");
    Console.WriteLine(result);
 }
        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();