代码片段解释

时间:2011-08-16 01:08:39

标签: c# runtime jit

假设我有一个用C#编写的WinForm应用程序。

有可能吗?

4 个答案:

答案 0 :(得分:1)

毕竟,请关注Iron Python。

答案 1 :(得分:0)

不会解释C#,因此与javascript或其他解释型语言不同,您无法本机化。您可以选择四条基本路线,按照最少到最复杂的顺序列出......

1)提供一组用户可以应用的固定操作。解析用户的输入,或提供复选框或其他UI元素以指示应该应用给定的操作。

2)提供基于插件或其他动态定义的操作集。与#1一样,这样做的好处是不需要像完全信任这样的特殊权限。 MEF可能会派上用场:http://mef.codeplex.com/

3)使用动态c#编译框架,如paxScript:http://eco148-88394.innterhost.net/paxscriptnet/。理论上,这将允许您按需编译小型c#片段。

4)使用IL Emit语句解析代码并动态生成操作。这是迄今为止最复杂的解决方案,可能需要完全信任,并且极易出错。除非你有一些非常模糊的要求和复杂的用户,否则我不推荐它。

答案 2 :(得分:0)

CSharpCodeProvider课程会做你想要的。对于(非常过时,但仍在使用一些调整)使用示例,请查看CSI

答案 3 :(得分:0)

如果您愿意考虑定位Mono运行时,类型Mono.CSharp.Evaluator提供了一个API,用于在运行时评估C#表达式和语句。