需要一个良好的架构来验证规则

use*_*072 4 c# validation

我希望你们能给我一些好的建议.我在想如何为C#开发建立一个好的架构.我正在尽力解释情景,因为我不擅长英语:

1)两个类:Blue Bank和Red Bank

2)第三类:验证规则

3)蓝色和红色银行有几个字段(值),如AccountNumber,Amount,InvoicePeriod等......这里的示例(xml):

蓝银行

  <AccountNumber>Maria 5987593457</AccountNumber>
  <Amount>200.00</Amount>
  <InvoicePeriod>1</InvoicePeriod>
Run Code Online (Sandbox Code Playgroud)

红银行

  <AccountNumber>8529458</AccountNumber>
  <Amount>300.00</Amount>
  <InvoicePeriod>0</InvoicePeriod>
Run Code Online (Sandbox Code Playgroud)

红色/蓝色银行具有一些相同的验证规则,例如必须是数字的金额字段.但Red/Blue Banks有不同的验证规则 - AccountNumber字段在Blue Bank中必须是alphanumberic,而AccountNumber必须在Red Bank中是numberic,否则将失败.InvoicePeriod字段在Red Bank中必须为默认值1,而在Blue Bank中必须为默认值0,否则将失败.

我的想法是:

我想为不同的验证规则创建每个类的Red/Blue Bank,然后我还为Blue/Red银行所具有的相同规则创建验证类规则.

我的代码在这里:

蓝银班:

  • 验证必须为alphanumberic的AccountNumber,否则失败
  • 验证InvoicePeriod必须是默认值1否则失败

红银班:

  • 验证必须为numberic的AccountNumber,否则失败
  • 验证InvoicePeriod必须是默认值0否则失败

RulesOfValidation类

  • 验证必须是数字的金额(红色/蓝色银行类的规则相同)

这些课程如何与dictonary <,>一起使用?或者您的示例代码有什么更好的建议吗?

非常感谢您的帮助.

gia*_*lli 5

规格模式是您的问题的一个很好的选择.您可以为每个特定需求创建公共银行规则和其他规范类的规范类.

这个模式有一些c#库: