C# 如果该样式在类中起规则作用,则该样式在类中起规则作用
我想做的是制定一套规则来反对财产,比如说我有阶级:C# 如果该样式在类中起规则作用,则该样式在类中起规则作用,c#,C#,我想做的是制定一套规则来反对财产,比如说我有阶级: public class OrderHeader { public string OrderNumber { get; set; } public string Customer { get; set; } public string PlainLabel { get; set; } public string DeliveryCode { get;
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,则更改交货代码=“NextDay”
如果客户=“ABC123”更改交货代码=“PalletNextDay”
我可以在每次编写代码时将其作为类中的if语句,但我正在寻找一些更具动态性的东西,可以在源代码之外完成。我想不出一种方法可以实现这一点。您可以将规则存储在数据文件中。例如,在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
类,使用查找表或反射动态获取/设置数据
举个例子。如果“DeliveryCode”是要计算的动态字段,请在DeliveryCode属性的getter方法中实现您的逻辑。是的,您可以在xml中有一些规则集,并且可能可以在实例化该类时加载xml,也可以将其放在单独的类中,并可以在多个类中共享。您可以将规则集保存为(例如)xml节点,其中包含一个结果子级和多个条件子级。然而,实际上并没有一种方法可以做到这一点,所以这个问题可能因为过于宽泛而结束。