如何建立可以执行用户定义的规则引擎,如果在C#.NET其他规则

StackOverflow https://stackoverflow.com/questions/771843

  •  12-09-2019
  •  | 
  •  

予有需要建立在我所喜欢这个规则被存储在Excel工作表的新的规则引擎,以表格的格式。

<If>  "Name = Nita "
<Value> "200"
<else> "Name = Gita"
<value> "300"
<LookInto> "/Name/@Income"

我有两个文件说1N的2.我需要在第一个文件地看到,无论是名称还是丹田歌。基于执行,我将获得价值。现在,这个结果值我需要第二个文件,这是一个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和B)或(c和d)这种结构会更好 - 我会离开这个给你考虑现在。


请注意我使用了一些C#3.0结构在这里,您将需要1.1创建完整的私有属性。

其他提示

您可以创建一个嘘DSL,但我不知道这是否会与1.1工作

您打算通过.NET 1.1非常有限。我想你的第一个步骤将是升级。

后续步骤可能包括内置在Windows Workflow Foundation的规则引擎;该发动机中,并与它相关联的图形设计师,被设计为WF的可用外部。

另一件事看将是验证应用程序块也就是微软企业库的一部分。

这一切都不六年前存在了,当.NET 1.1统治地球。

或者你可以让别人做这个工作,用好.NET规则引擎像InRule技术的产品,IBM / ILOG规则.NET或火焰顾问.NET。他们的工作很好,会给你在.net中强大的规则环境。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top