如果这样那么样式就在一个类上规则

时间:2017-05-11 08:33:45

标签: c#

我想要做的是制定一套反对财产的规则,所以说我上课了:

 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语句,但我正在寻找可以在源代码之外完成的更动态的东西。我无法想到一种可以实现这一目标的方法。

1 个答案:

答案 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来动态获取/设置数据。

你知道,就像一个例子。