0

在运行时评估存储为字符串的条件表达式的最佳方法是什么。

我正在使用 MVC3、.NET4、C#4。

所以假设解决方案是一种名为“Eval”的方法,那么:

if eval("User.Name.Length>0")
{return true;}

行为方式应与以下相同:

if (User.Name.Length>0)
{return true;}

因此,作为此解决方案的一部分,我还需要访问任何 inscope .NET 类型。

那么“Eval”的解决方案是什么?

谢谢。

PS 我已经发布了一个单独的问题,重点关注动态 LINQ 作为解决方案。但是我现在认为我的解决方案更简单,因此这个问题。

编辑。不要过多地阅读“用户”。它可以是任何物体。我对如何在运行时评估字符串表达式感兴趣,就好像它们是在编译时明确编写的一样。另一个例子可能是:

if eval("mycat.coatcolour=='ginger'")
{return true;}
4

1 回答 1

2

您将必须实现自己的解析器并使用反射/FastMember 来导航路径或寻找像CS-Script这样的脚本解决方案。

于 2013-03-26T13:32:30.937 回答