C# 执行 Javascript 代码的几种方法汇总 - I. 开放源码项目 Javascript .NET Framework 3.0
最编程
2024-04-23 10:30:33
...
先添加Microsoft.JScript、Microsoft.Vsa二个程序集的引用,然后就能用了,示例代码如下:
复制代码代码如下:
using Microsoft.JScript;
using Microsoft.JScript.Vsa;
using System;
namespace JsCSharp
{
class Program
{
static VsaEngine Engine = VsaEngine.CreateEngine();
static void Main(string[] args)
{
var i = (int)EvalJScript("1+2;");
Console.WriteLine(i);//3
var d = (DateObject)EvalJScript("var d = new Date(2013,9-1,2,20,30,15)");
Console.WriteLine(d);//Mon Sep 2 20:30:15 UTC+8 2013
var j = EvalJScript("function add(x,y){return x+y;};add(5,10);");
Console.WriteLine(j);//15
var obj = EvalJScript("var obj = {};obj.name='jimmy';obj.sex='Male';");
Console.WriteLine(obj);//Male 注:只返回最后一条执行的语句结果
Console.Read();
}
static object EvalJScript(string JScript)
{
object Result = null;
try
{
Result = Microsoft.JScript.Eval.JScriptEvaluate(JScript, Engine);
}
catch (Exception ex)
{
return ex.Message;
}
return Result;
}
}
}
Vsa的功能比较有限,多条语句执行时,只返回最后一条语句的执行结果。