2010-06-16 55 views
6

C#中动态代码评估的状态是什么?对于我正在开发的应用程序的一项非常先进的功能,我希望用户能够输入一行应计算为布尔值的C#代码。如何在C#中进行动态脚本评估?

喜欢的东西:

DateTime.Now.Hours > 12 && DateTime.Now.Hours < 14 

我想动态EVAL这个字符串,并捕获结果作为布尔值。

我试过Microsoft.JScript.Eval.JScriptEvaluate,这工作,但它在技术上不推荐使用,它只适用于Javascript(不理想,但可行)。此外,我希望能够将对象推入脚本引擎,以便它们可以用于评估。

我发现上面提到的一些资源可以动态地编译程序集,但是这比我想处理的开销要高。

那么,C#中动态脚本评估的状态是什么?这是可能的,还是我运气不好?

回答

3

您可以使用DLR的ScriptEngine的,这里有一个例子:

+0

尼斯总结篇 – 2010-06-16 06:19:05