一切都在 C# 中。
我有一个array
特定的类,其中包含很多字段和信息。
我想在上面实现一个简单规则引擎array
,例如:If object1.name
is something and object2.name
is something and Function(object1.value,object2.value)==True
then ....
我开始使用 Windows Workflow Foundation,遇到的问题是我给规则引擎一个特定object_type
的工作,所以我实际上不能让规则检查 2 个不同的对象。
例如,我告诉规则引擎在typeof(MY_CLASS)
. 然后规则将如下所示:“如果this.name
是某物并且(我不能调用不同的对象!)......”
我基本上希望规则像这样运行:“如果this[i].name
是某物并且this[j].name
是某物......”所以最终数组中的所有对都将循环通过。
为了弄清楚,这就是我设置规则引擎(WF)的方式:
public class My_Array{ 字符串名称、描述...和很多字段}
Data_Array = new My_Array[N];
规则集 ruleSet = null;
RuleSetDialog ruleSetDialog = new RuleSetDialog(typeof(My_Array), null, ruleSet);
现在,例如一个规则将是:如果 this.name == "Name1" then this.description = "description1"
这就是我对 ONE 对象执行规则的方式:
RuleValidation validation = new RuleValidation(typeof(My_Array), null);
RuleExecution execution = new RuleExecution(validation, Data_Array[0]);
ruleSet.Execute(execution);
因此该规则将仅适用于 Data_Array[0]。我可以执行一个循环以应用于所有数组,但一次只能应用于一个单元格。
我想编写一次检查多个对象的规则,例如,这样的规则:
if object1.name == something and object2.name == somethigelse then...
但问题是规则引擎一次只能处理一个对象。
我怎样才能做到这一点?应用一条可以满足我要求的规则?