gpt4 book ai didi

c# - 我如何构建可以执行用户定义的规则引擎,如果在 C#.net 中有其他规则

转载 作者:太空宇宙 更新时间:2023-11-03 22:27:32 25 4
gpt4 key购买 nike

我需要构建新的规则引擎,其中我有这样的规则,以表格格式存储在 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com