欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#執(zhí)行Javascript代碼的幾種方法總結(jié)

 更新時(shí)間:2014年01月26日 08:56:35   作者:  
本篇文章主要是對(duì)C#執(zhí)行Javascript代碼的幾種方法進(jìn)行了詳細(xì)的總結(jié)介紹,需要的朋友可以過來參考下,希望對(duì)大家有所幫助

一、開源項(xiàng)目 Javascript .NET

地址: http://javascriptdotnet.codeplex.com/ 它是Google Chrome V8引擎在.NET上的封裝,功能完善,性能相對(duì)較高,推薦使用! (缺點(diǎn)就是asp.net web應(yīng)用上,好象會(huì)報(bào)錯(cuò))

示例代碼:

復(fù)制代碼 代碼如下:

using Noesis.Javascript;
using System;
using System.Collections.Generic;

namespace JsCSharp
{
    class Program
    {
        static void Main(string[] args)
        {
            using (JavascriptContext ctx = new JavascriptContext())
            {
                var i = ctx.Run("1+2");
                Console.WriteLine(i);//3
                ctx.Run("var d = new Date(2013,9-1,2,20,30,15)");
                var d = ctx.GetParameter("d");
                Console.WriteLine(d);//2013/9/2 20:30:15
                var j = ctx.Run("function add(x,y){return x+y;};add(5,10);");
                Console.WriteLine(j);//15
                ctx.Run("var obj = {};obj.name='jimmy';obj.sex='Male';obj.name='楊俊明'");
                var obj = ctx.GetParameter("obj") as Dictionary<string, object>;
                foreach (var key in obj.Keys)
                {
                    Console.WriteLine(string.Format("{0}:{1}", key, obj[key]));
                    //name:楊俊明
                    //sex:Male
                }
                var jsonArr = ctx.Run("[{Airport:'PEK',Name:'北京首都機(jī)場(chǎng)'},{Airport:'XIY',Name:'西安咸陽(yáng)機(jī)場(chǎng)'}]") as Array;
                foreach (var item in jsonArr)
                {
                    var json = item as Dictionary<string, object>;
                    foreach (var key in json.Keys)
                    {
                        Console.WriteLine(string.Format("{0}:{1}", key, json[key]));
                        //Airport:PEK
                        //Name:北京首都機(jī)場(chǎng)
                        //Airport:XIY
                        //Name:西安咸陽(yáng)機(jī)場(chǎng)
                    }
                }
                ctx.SetParameter("x", 7);
                ctx.Run("function add(x,y){return x+y;}; function sub(x,y){return x-y;};k = add(2,x);var t = sub(9,1);");
                var k = ctx.GetParameter("k");
                Console.WriteLine(k);//9
                var t = ctx.GetParameter("t");
                Console.WriteLine(t);//8
                Console.Read();
            }

        }

    }
}

部署時(shí)要注意,msvcp100.dll、msvcr100.dll這二個(gè)文件,要復(fù)制到bin目錄下

二、利用Microsoft.JScript.Vsa

先添加Microsoft.JScript、Microsoft.Vsa二個(gè)程序集的引用,然后就能用了,示例代碼如下:

復(fù)制代碼 代碼如下:

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 注:只返回最后一條執(zhí)行的語句結(jié)果
            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的功能比較有限,多條語句執(zhí)行時(shí),只返回最后一條語句的執(zhí)行結(jié)果。

相關(guān)文章

  • Unity Shader實(shí)現(xiàn)水墨效果

    Unity Shader實(shí)現(xiàn)水墨效果

    這篇文章主要為大家詳細(xì)介紹了Unity Shader實(shí)現(xiàn)水墨效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • C#實(shí)現(xiàn)字符串倒序遍歷的方法小結(jié)

    C#實(shí)現(xiàn)字符串倒序遍歷的方法小結(jié)

    這篇文章主要為大家詳細(xì)介紹了C#中實(shí)現(xiàn)字符串倒序遍歷的常見方法,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,有需要的小伙伴可以參考下
    2024-02-02
  • C#基本打印事件用法實(shí)例

    C#基本打印事件用法實(shí)例

    這篇文章主要介紹了C#基本打印事件用法,實(shí)例分析了C#中print打印及DrawString文本字符串繪制等相關(guān)技巧,需要的朋友可以參考下
    2015-06-06
  • C#折線圖控件使用方法詳解

    C#折線圖控件使用方法詳解

    這篇文章主要為大家詳細(xì)介紹了C#折線圖控件的使用方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • C#實(shí)現(xiàn)將DataTable內(nèi)容輸出到Excel表格的方法

    C#實(shí)現(xiàn)將DataTable內(nèi)容輸出到Excel表格的方法

    這篇文章主要介紹了C#實(shí)現(xiàn)將DataTable內(nèi)容輸出到Excel表格的方法,較為詳細(xì)的分析了C#基于DataTable保存Excel數(shù)據(jù)的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-08-08
  • C# API中模型與它們的接口設(shè)計(jì)詳解

    C# API中模型與它們的接口設(shè)計(jì)詳解

    這篇文章主要給大家介紹了關(guān)于C# API中模型與它們的接口設(shè)計(jì)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-06-06
  • C#實(shí)現(xiàn)窗體與子線程的交互的方法

    C#實(shí)現(xiàn)窗體與子線程的交互的方法

    這篇文章主要介紹了C#實(shí)現(xiàn)窗體與子線程的交互的方法,對(duì)初學(xué)者有一定的學(xué)習(xí)借鑒價(jià)值,需要的朋友可以參考下
    2014-08-08
  • C#實(shí)現(xiàn)將程序鎖定到Win7任務(wù)欄的方法

    C#實(shí)現(xiàn)將程序鎖定到Win7任務(wù)欄的方法

    這篇文章主要介紹了C#實(shí)現(xiàn)將程序鎖定到Win7任務(wù)欄的方法,涉及C#調(diào)用Shell類的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-08-08
  • C#與js實(shí)現(xiàn)去除textbox文本框里面重復(fù)記錄的方法

    C#與js實(shí)現(xiàn)去除textbox文本框里面重復(fù)記錄的方法

    這篇文章主要介紹了C#與js實(shí)現(xiàn)去除textbox文本框里面重復(fù)記錄的方法,很實(shí)用的功能,需要的朋友可以參考下
    2014-08-08
  • C#實(shí)現(xiàn)多線程的同步方法實(shí)例分析

    C#實(shí)現(xiàn)多線程的同步方法實(shí)例分析

    這篇文章主要介紹了C#實(shí)現(xiàn)多線程的同步方法,實(shí)例分析了C#線程同步的實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-04-04

最新評(píng)論