Csharp/C#教程:C#执行Javascript代码的几种方法总结分享

一、开源项目Javascript.NET

地址:http://javascriptdotnet.codeplex.com/它是GoogleChromeV8引擎在.NET上的封装,功能完善,性能相对较高,推荐使用!(缺点就是asp.netweb应用上,好象会报错)

示例代码:
代码如下:
usingNoesis.Javascript;
usingSystem;
usingSystem.Collections.Generic;
namespaceJsCSharp
{
   classProgram
   {
       staticvoidMain(string[]args)
       {
           using(JavascriptContextctx=newJavascriptContext())
           {
               vari=ctx.Run(“1+2”);
               Console.WriteLine(i);//3
               ctx.Run(“vard=newDate(2013,9-1,2,20,30,15)”);
               vard=ctx.GetParameter(“d”);
               Console.WriteLine(d);//2013/9/220:30:15
               varj=ctx.Run(“functionadd(x,y){returnx+y;};add(5,10);”);
               Console.WriteLine(j);//15
               ctx.Run(“varobj={};obj.name=’jimmy’;obj.sex=’Male’;obj.name=’杨俊明'”);
               varobj=ctx.GetParameter(“obj”)asDictionary<string,object>;
               foreach(varkeyinobj.Keys)
               {
                   Console.WriteLine(string.Format(“{0}:{1}”,key,obj[key]));
                   //name:杨俊明
                   //sex:Male
               }
               varjsonArr=ctx.Run(“[{Airport:’PEK’,Name:’北京首都机场’},{Airport:’XIY’,Name:’西安咸阳机场’}]”)asArray;
               foreach(variteminjsonArr)
               {
                   varjson=itemasDictionary<string,object>;
                   foreach(varkeyinjson.Keys)
                   {
                       Console.WriteLine(string.Format(“{0}:{1}”,key,json[key]));
                       //Airport:PEK
                       //Name:北京首都机场
                       //Airport:XIY
                        //Name:西安咸阳机场
                   }
               }
               ctx.SetParameter(“x”,7);
               ctx.Run(“functionadd(x,y){returnx+y;};functionsub(x,y){returnx-y;};k=add(2,x);vart=sub(9,1);”);
               vark=ctx.GetParameter(“k”);
               Console.WriteLine(k);//9
               vart=ctx.GetParameter(“t”);
               Console.WriteLine(t);//8
               Console.Read();
           }
       }
   }
}

部署时要注意,msvcp100.dll、msvcr100.dll这二个文件,要复制到bin目录下

二、利用Microsoft.JScript.Vsa

先添加Microsoft.JScript、Microsoft.Vsa二个程序集的引用,然后就能用了,示例代码如下:
代码如下:
usingMicrosoft.JScript;
usingMicrosoft.JScript.Vsa;
usingSystem;
namespaceJsCSharp
{
   classProgram
   {
       staticVsaEngineEngine=VsaEngine.CreateEngine();
       staticvoidMain(string[]args)
       {
           vari=(int)EvalJScript(“1+2;”);
           Console.WriteLine(i);//3
           vard=(DateObject)EvalJScript(“vard=newDate(2013,9-1,2,20,30,15)”);
           Console.WriteLine(d);//MonSep220:30:15UTC+82013
           varj=EvalJScript(“functionadd(x,y){returnx+y;};add(5,10);”);
           Console.WriteLine(j);//15
           varobj=EvalJScript(“varobj={};obj.name=’jimmy’;obj.sex=’Male’;”);
           Console.WriteLine(obj);//Male注:只返回最后一条执行的语句结果
           Console.Read();
       }
 
       staticobjectEvalJScript(stringJScript)
       {
           objectResult=null;
           try
           {
               Result=Microsoft.JScript.Eval.JScriptEvaluate(JScript,Engine);
           }
           catch(Exceptionex)
           {
               returnex.Message;
           }
           returnResult;
       }
   }
}

Vsa的功能比较有限,多条语句执行时,只返回最后一条语句的执行结果。

上述就是C#学习教程:C#执行Javascript代码的几种方法总结分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com) 您可能感兴趣的文章:C#和JavaScript实现交互的方法c#和javascript函数相互调用示例分享javascript函数中执行c#函数的方法C#javascript读写Cookie的方法javaScript函数中执行C#代码中的函数方法

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请点击右边联系管理员删除。

如若转载,请注明出处:https://www.ctvol.com/cdevelopment/905301.html

(0)
上一篇 2021年10月22日
下一篇 2021年10月22日

精彩推荐