IronJS与CSScript

CSScript确实是个不错的东西,填补了WSH没有C#的空白,最重要的是大大扩展了脚本的功能,以前用JS写WSH的脚本,功能实在是弱了点,想把文件存成UTF-8,还不得不用ADOBD.Stream,着实不方便。

有了CSScript,以后写点编译用的简单脚本就方便了,用起来比Lua爽多了(当然,Lua本来就不是干这个的)。

CSScript本质上是将C#在线编译,然后执行,如果要执行一些运行时动态生成的代码,就没有这么方便了,毕竟C#不是动态语言,每一行代码都得编译成assembly才能运行。如果将CSScript和IronJS结合在一起,那所有问题就都解决了。

 1 using System;
 2 using Microsoft.CSharp;
 3 using IronJS;
 4 
 5 class Script
 6 {
 7     static void Main(string[] args)
 8     {
 9         var ctx = new IronJS.Hosting.CSharp.Context();
10         dynamic hello = ctx.Execute("(function (){ return {msg:'你好,IronJS'};})();");
11         Console.Out.WriteLine(hello.msg);
12         Console.Out.WriteLine(hello.noexist);
13         Console.ReadKey(true);
14     }
15 }

注意,必须添加 “Microsoft.CSharp”,必须将IronJS.dll放到csscript能找到的地方,否则会发生编译错误!有关代码的其他解释,参见初探IronJS

最后,感谢Rain.兄告诉我CSScript这个好东西

原文地址:https://www.cnblogs.com/windtail/p/2818830.html