在运行时评估存储为字符串的条件表达式的最佳方法是什么。
我正在使用MVC3,.NET4,C#4。
因此,假设解决方案是一个名为“Eval”的方法,那么:
if eval("User.Name.Length>0")
{return true;}
的行为方式应与:
相同if (User.Name.Length>0)
{return true;}
所以我还需要访问任何inscope .NET类型作为此解决方案的一部分。
那么“Eval”的解决方案是什么?
感谢。
P.S我发布了一个单独的问题,专注于动态LINQ作为解决方案。但是我现在认为我的解决方案更简单,因此这个问题。
EDIT。不要在“用户”中阅读太多内容。它可以是任何物体。我感兴趣的是如何在运行时评估字符串表达式,就好像它们是在编译时明确编写的一样。另一个例子可能是:
if eval("mycat.coatcolour=='ginger'")
{return true;}