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这个好东西

你可能感兴趣的:(script)