在当前范围内运行动态代码

时间:2014-09-26 14:50:08

标签: c# .net eval

有没有办法运行动态代码可以访问当前范围内的变量,比如javascript eval,甚至是否有任何脚本语言可以执行此操作?

我喜欢Jscript.net,但不能单声道运行。

在我的模板系统中

<tag:field name="description" 
    eval="@this.Substring(0,@this.Length<100?@this.Length:100)" />

执行此标记时,它将运行此c#代码并替换标记

return Field["descripton"]
    .Substring(0,Field["descripton"].Length<100?Field["descripton"].Length:100);

1 个答案:

答案 0 :(得分:0)

我不能在这里提供一个确切的答案,我认为任务有点开放,所以可能还有其他选择。

但是我使用Flee(https://flee.codeplex.com/wikipage?title=LanguageReference)库做了类似的事情。

它允许您在上下文中执行任意语句。您将不得不使用语句可能需要的所有变量创建闭包上下文,并执行该语句。

只是一个提示,但我知道它对我有用。