1)采用C#动态编译实现,直接采用C#作为脚本语言
.NET支持代码直接调用编译器的功能,在运行时动态编译一段代码字符串,然后利用反射运行。

实际项目中,发现有时候编译的时候会出现脚本锁定的问题,需要try-catch,若被锁定,则可以重新指定程序集名,重新编译。

2)采用Jscript.NET ,javascript作为脚本语言

我们都知道js中有eval函数,可以将字符串作为脚本运行。将JsScript中的eval包装成dll,然后提供给C#调用:

http://odetocode.com/articles/80.aspx

http://www.west-wind.com/weblog/posts/2007/Feb/14/Evaluating-JavaScript-code-from-C

3)如果是.NET4.0或以上版本,可以采用IronPython作为脚本引擎,Python作为脚本语言:

http://www.chrisumbel.com/article/scripting_ironpython_dlr

4) Lua作为一种流行的嵌入式脚本语言,可惜的是没有官方对.NET的支持,不过有个老外提供了一种解决方案:

http://ttuxen.wordpress.com/2009/11/03/embedding-lua-in-dotnet/

这个貌似是官方列出的LUA .NET实现: http://code.google.com/p/luainterface/

 

5)

codeplex开源项目:--貌似不维护了

http://flee.codeplex.com/releases/view/28952

http://ncalc.codeplex.com/

 

Github上:

 http://www.infoq.com/cn/news/2010/11/dotnet-javascript-engine

https://github.com/paulbartrum/jurassic

https://github.com/sebastienros/jint

 

posted on 2013-03-01 15:58  jianyi  阅读(982)  评论(2编辑  收藏  举报