我需要构建新的规则引擎,其中我有这样的规则,以表格格式存储在 Excel 工作表中。
<If> "Name = Nita "
<Value> "200"
<else> "Name = Gita"
<value> "300"
<LookInto> "/Name/@Income"
我有两个文件,比如 1 n 2。我需要在第一个文件中查看 Name 是 Nita 还是 Gita。基于执行,我将获得值(value)。现在,我需要将此结果值与第二个文件进行比较,该文件是一个 xml 文件,其路径已定义到 .
有人能建议我 C# 中有什么我可以有效地用来开发相同的东西吗,或者有人能建议我如何用 C# 实现这一点..我需要一些关于类设计的想法。
我正在使用 .Net 1.1。
最佳答案
首先,您需要创建可以定义规则的类。准备好此结构后,您将能够构建一个利用这些类的引擎。
我会考虑创建类似这样的东西:
class RuleEngine
{
public RuleMatch[] RuleMatches { get; set; }
public void RunEngine(inputdata...)
{
// do processing in here
}
}
class RuleMatch
{
public Rule[] Rules { get; set; }
public Object ValueIfMatched { get; set; }
}
class Rule
{
public String FieldName { get; set; }
public MatchType Match { get; set; }
public Object Value { get; set; }
)
enum MatchType
{
Equal = 1,
NotEqual = 2,
GreaterThan = 4,
LessThan = 8,
Like = 16
}
然后从那里继续……
如果将此结构更改为具有可以添加到一组规则的一组规则,例如 (a AND b) OR (c AND d) - 我将把这个留给你暂时考虑一下。
请注意,我在这里使用了一些 C# 3.0 结构,您需要在 1.1 中创建完整的私有(private)属性。
关于c# - 我如何构建可以执行用户定义的规则引擎,如果在 C#.net 中有其他规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/771843/