我想要做的是制定一套反对财产的规则,所以说我上课了:
public class OrderHeader
{
public string OrderNumber { get; set; }
public string Customer { get; set; }
public string PlainLabel { get; set; }
public string DeliveryCode { get; set; }
public string Name { get; set; }
public string Address1 { get; set; }
public string Address2 { get; set; }
public string Address3 { get; set; }
public string Address4 { get; set; }
public string PostCode { get; set; }
}
我想为类创建某种规则,并将其存储在某种SQL数据库或XML文件中,例如:
如果客户=" ZZZ999"和邮政编码=" PO4 9BQ"和PlainLabel = 1然后更改DeliveryCode =" NextDay"
如果客户=" ABC123"更改DeliveryCode =" PalletNextDay"
我可以在每次编写代码作为类中的if语句,但我正在寻找可以在源代码之外完成的更动态的东西。我无法想到一种可以实现这一目标的方法。
答案 0 :(得分:2)
您可以将规则存储在数据文件中。例如,在XML格式中,它看起来像这样:
<Ruleset>
<Rule>
<Condition Property="Customer" Value="ZZZ999" />
<Condition Property="PostCode" Value="PO4 9BQ" />
<Condition Property="PlainLabel" Value="1" />
<Set Property="DeliveryCode" Value="NextDay" />
</Rule>
<Rule>
<Condition Property="Customer" Value="ABC123" />
<Set Property="DeliveryCode" Value="PalletNextDay" />
</Rule>
</Ruleset>
然后你可以有一些类RuleManager
将数据读入Rule
个对象列表,然后检查/应用规则到给定的OrderHeader
类,使用任何一个 - up table或Reflection来动态获取/设置数据。
你知道,就像一个例子。