在运行时构建if语句吗?

时间:2010-09-15 20:15:26

标签: vb.net .net-3.5

我的产品负责人要求我将一些比较逻辑配置为可配置,以便流程工程师可以在不进行代码更改的情况下更改内容。目前,代码是一个SELECT CASE语句,其中包含各种IF THEN语句,这些语句相当标准。我似乎无法找到解决办法的问题是他希望通过AND/OR语句中的IF THEN配置进行可变数量的比较。他的想法是,配置将像过程工程师的有限查询构建器一样工作。我提出的唯一解决方案是在字符串中构建函数并使用VBCodeProvider在运行时编译它。有没有更好的方法来解决这个问题?

2 个答案:

答案 0 :(得分:1)

一种方法是将布尔值存储在配置文件中,在运行时加载它们,并像在任何其他布尔值中一样在代码中使用它们。

更好的方法是让配置尽可能靠近他的问题域,然后从代码中使用正确的布尔值进行编码。

答案 1 :(得分:1)

您可以使用expressions来完成此操作。有了这个,你就可以建立一个IfExpression并建立它的条件。您可以编译它并在运行时运行它。