如何从 .NetCore 评估 JavaScript 代码

Pra*_*oir 1 asp.net-core-mvc asp.net-core asp.net-core-webapi asp.net-core-2.1

我需要评估 .netcore 2.1 项目中的 Javascript 代码

    string vRule = "var input = arguments[0]; if (!input) return \"\"; if(input.length != 7) return \"a fixed string length of 7 is required\"; else return \"\"";
    string spResponse = "sdfsd23";

    string errorText =
        _jscriptEval.EvalToString(new List<object>
            {
                "var args = new Array('" + spResponse +
                "');\r\n validateRule(args);\r\n function validateRule(arguments){" + vRule +
                "}\r\n"
            });
Run Code Online (Sandbox Code Playgroud)

D A*_*D A 5

您可以使用Jint。Jint 实现了 ECMA 5.1 规范,可以从任何 .NET 实现(Xamarin、.NET Framework、.NET Core)中使用。只需使用 NuGet 包,并且不依赖于其他东西——它是一个 .dll 文件,你就完成了!只需将您的 javascript 代码转换为一个函数并像这样运行它(这只是一个示例,而不是您的实现):

  var engine = new Engine()
    .Execute("function MyFunction(a, b) { return a + b; }")
    ;

engine.Invoke("MyFunction", 1, 2); // -> 3
Run Code Online (Sandbox Code Playgroud)

你在https://github.com/sebastienros/jint上有更多的解释和例子