在 Jint 中,您可以在 JS 中访问 .Net 类。
JS 文件代码:
var write = function (msg) {
var log = System.Console.WriteLine;
log(msg);
};
C#代码
Engine jsEngine = new Engine(e=>e.AllowClr());
string script = System.IO.File.ReadAllText("file1.js");
jsEngine.Execute(script);
jsEngine.Invoke("write", "Hello World!"); //Displays in Console: "Hello World!"
- 我不明白后台发生了什么?哪个编译器会编译 JS 文件中注入(inject)的 c# 代码? C# 编译器还是 JS?
- 如果我在JS文件中声明了C#List,生成的对象是JS对象还是C#对象?
最佳答案
您没有注入(inject) C# 代码,Jint 解释器会理解您引用的是 .NET 类,因此会执行此代码。因为 Jint 是用 .NET 编写的,所以它可以运行您要求的任何 .NET 代码。
此外,Jint 不编译任何东西,它读取每个 javascript 语句并尝试一个接一个地评估它们,跟踪您正在声明和使用的所有变量、函数和其他 JS 工件。
关于javascript - 如果我使用 Jint 引擎在 JavaScript 代码中定义一个 .Net 类会发生什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36115183/