执行字符串为C#

时间:2017-06-08 11:36:15

标签: c#

我正在检查可能发生变化的条件,因此希望在字符串中构建它们,然后将该字符串作为C#运行。

//string conditionToCheck = user.Userdetail.Age > 18
string conditionToCheck = "user." + condition.Table + "." + condition.Column + " " + condition.Operator + " " + condition.Value;
if(conditionToCheck)
{
    ConditionsMet = true;
}

有没有办法将conditionToCheck转换为C#?

背景

我允许用户通过选择一个表及其列来创建条件,然后分配&运算符> < ==和一个值。

由于用户可以选择数据库中任何表的任何列,我需要代码来检查处理任何事情的条件。

2 个答案:

答案 0 :(得分:0)

是的,最好的解决方案可能是使用CodeDOM动态编译C#代码。之后,您可以使用反射来动态加载和执行已编译的程序集,并从评估中获取结果。我不确定这是否是解决问题的最佳或最优雅的解决方案。

您可以找到示例here

答案 1 :(得分:0)

我并不完全清楚你要解决的问题,

但是如果您尝试将文本动态转换为C#

代码也许您应该使用T4解决方案:

https://msdn.microsoft.com/en-us/library/bb126445.aspx