我正在检查可能发生变化的条件,因此希望在字符串中构建它们,然后将该字符串作为C#运行。
//string conditionToCheck = user.Userdetail.Age > 18
string conditionToCheck = "user." + condition.Table + "." + condition.Column + " " + condition.Operator + " " + condition.Value;
if(conditionToCheck)
{
ConditionsMet = true;
}
有没有办法将conditionToCheck转换为C#?
背景
我允许用户通过选择一个表及其列来创建条件,然后分配&运算符> < ==和一个值。
由于用户可以选择数据库中任何表的任何列,我需要代码来检查处理任何事情的条件。
答案 0 :(得分:0)
是的,最好的解决方案可能是使用CodeDOM动态编译C#代码。之后,您可以使用反射来动态加载和执行已编译的程序集,并从评估中获取结果。我不确定这是否是解决问题的最佳或最优雅的解决方案。
您可以找到示例here
答案 1 :(得分:0)
我并不完全清楚你要解决的问题,
但是如果您尝试将文本动态转换为C#
代码也许您应该使用T4解决方案: