最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#?執(zhí)行Javascript腳本的方法步驟

 更新時(shí)間:2022年01月05日 10:33:33   作者:尋找無名的特質(zhì)  
本文主要介紹了C#?執(zhí)行Javascript腳本的方法步驟,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

前一陣子使用C#編寫SCXML狀態(tài)機(jī),需要解析EMCScript表達(dá)式,使用了Jint庫(https://github.com/sebastienros/jint/),當(dāng)時(shí)感覺與C#之間的數(shù)據(jù)轉(zhuǎn)換不是很方便。這兩天有時(shí)間又關(guān)注了一下,發(fā)現(xiàn)新的3.0版本有了很大改進(jìn),在這里介紹給大家,供參考。

首先要安裝nuget包,注意增加prerelease選項(xiàng),安裝最新的版本,使用dotnet命令行指令如下:

dotnet add ?package Jint --prerelease

直接計(jì)算表達(dá)式:

Console.WriteLine("直接計(jì)算表達(dá)式:(1+2)*3");
var r1= e.Evaluate("(1+2)*3");
Console.WriteLine(r1);

字符串操作:

Console.WriteLine("字符串操作:'abc'.length");
var r2=e.Evaluate("'abc'.length");
Console.WriteLine(r2);

Console.WriteLine("-----------------------");
Console.WriteLine("字符串操作:'abc'.substr(2)");
var r3=e.Evaluate("'abc'.substr(2)");
Console.WriteLine(r3);

可以使用SetValue給JS變量賦值:

var e2 = new Engine()
    .SetValue("x", 1)
    .SetValue("y",2);
var r4=e2.Evaluate("x+y");
Console.WriteLine(r4);

可以使用對(duì)象進(jìn)行C#和JS之間的數(shù)據(jù)交換:

var myobj= new Student {
    Name="張三"
};
Console.WriteLine(myobj.Name);
var e4 = new Engine()
    .SetValue("student", myobj)
    .Execute("student.Name = '李四'");
Console.WriteLine(myobj.Name);

可以將C#函數(shù)委托給JS引擎,在JS代碼中調(diào)用這些函數(shù):

Console.Write("將CSharp函數(shù)設(shè)置給Js引擎");
var engine = new Engine()
    .SetValue("log", new Action<object>(Console.WriteLine));
 engine.Execute(@"
    function hello() { 
        log('Hello World');
    };
 
    hello();
");

也可以從CSharp 調(diào)用JS的函數(shù):

Console.WriteLine("調(diào)用JS函數(shù)計(jì)算BMI");
var e5=new Engine()
    .Execute("function bmi(weight, height) { return weight/height/height; }");
Console.WriteLine(e5.Invoke("bmi",75,1.75));

可以引入CLI,從而在JS引擎中調(diào)用CLI中的函數(shù):

Console.WriteLine("調(diào)用.Net函數(shù)寫入文件");
var e6 = new Engine(cfg => cfg.AllowClr());
e6.Execute(@"var f=System.IO.StreamWriter('sayhello.log');
        f.WriteLine('你好 !');
        f.Dispose();");

示例可以從github下載:https://github.com/zhenl/CSharpScriptDemo,本文示例在JSInCSharp項(xiàng)目中。

到此這篇關(guān)于C# 執(zhí)行Javascript腳本的方法步驟的文章就介紹到這了,更多相關(guān)C# 執(zhí)行Javascript腳本內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

乌兰浩特市| 自贡市| 托克逊县| 康平县| 万全县| 荃湾区| 崇文区| 甘肃省| 临高县| 米林县| 林芝县| 山东省| 民权县| 巴塘县| 古丈县| 神池县| 琼中| 台江县| 宜良县| 舟山市| 睢宁县| 天台县| 肇源县| 来宾市| 涿鹿县| 鹰潭市| 阿克苏市| 兴安县| 凤山市| 临安市| 迭部县| 德钦县| 漯河市| 江门市| 甘德县| 永新县| 浙江省| 双鸭山市| 宁城县| 太仆寺旗| 朝阳区|