欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

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的功能比较有限,多条语句执行时,只返回最后一条语句的执行结果。