【发布时间】:2013-04-03 03:55:58
【问题描述】:
我有一个 .NET 对象,它是一个集合,例如一个包含员工列表的 Employee 对象。
我需要将其传递给规则引擎以在规则文件中进行循环。
您能否帮我处理来自 .NET 的代码以及在 xbre 文件中循环的代码。
我已经成功传递了一个带有单条记录的对象。但是需要通过集合。
【问题讨论】:
标签: nxbre
我有一个 .NET 对象,它是一个集合,例如一个包含员工列表的 Employee 对象。
我需要将其传递给规则引擎以在规则文件中进行循环。
您能否帮我处理来自 .NET 的代码以及在 xbre 文件中循环的代码。
我已经成功传递了一个带有单条记录的对象。但是需要通过集合。
【问题讨论】:
标签: nxbre
我建议您使用标准方法将 EmployeeWrapper 对象本身传递给 NxBRE:
bre.RuleContext.SetObject("EmployeeWrapper", employeeWrapper);
然后反思性地提取员工列表:
<ObjectLookup id="Employees" objectId="EmployeeWrapper" member="Employees" />
假设 EmployeeWrapper 对象有一个名为 Employees 的属性,该属性返回员工集合。
然后使用ForEach 块来迭代员工:
<ForEach id="Employee" valueId="Employees">
...
</ForEach>
【讨论】:
<ObjectLookup id="Employees" objectId="EmployeeWrapper[0]" /> 之类的东西,foreach 解决方案无法解决我的问题。
NxBRE.Util.DataAccess#GetArrayColumnValue 静态助手应该允许您获取数组值。请参阅此处的示例:github.com/ddossot/NxBRE/blob/master/NxBRE3/Rulefiles/…