我想知道在 ASP.NET MVC 2 中使用“代码合同”属性作为验证规则的可用选项。
问问题
1090 次
2 回答
1
是的,“代码契约”的主要目的是根据我的类设计验证我的代码,但它也描述了我的对象的有效状态。
我能想到的验证场景是以下三种类型:
- 输入验证(UI 验证)
- 域验证 (DbC)
- 输出验证(持久性验证,例如:NHibernate Validator)
我认为验证是一个逻辑问题,目标对象是否处于有效状态。
DbC 包含三个部分,
- 验证规则
- 静态检查器
- 运行时检查器
第一部分(规则)在所有三种验证场景中都很常见。当我使用“代码合同”将属性标记为“非空”以验证其设计时,使用 MVC(UI 验证)的“System.ComponentModel.DataAnnotations”将其标记为“非空”不是很丑吗?
抽象地说,有效状态的定义是核心,验证框架和“代码契约”的共享部分提供了它,另外还有一个是域设计(而不是 I/O)的“静态检查器”。
于 2010-08-05T16:15:32.237 回答