问题描述
我需要评估.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"
});
解决方法
您可以使用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
上有更多说明和示例。