我想知道使用“代码约定”属性作为ASP.NET MVC 2中的验证规则的可用选项。
答案 0 :(得分:2)
您可以通过自定义运行时检查器来完成此操作。
虽然可以将Code Contracts调整为用作验证框架,但我会建议不要这样做。它是调整运行时检查程序的更高级功能之一,更重要的是,不是为代码合同做的。
代码合同基本上是一种在项目中集成Design by Contract的方法。虽然其目的之一是针对您的类设计验证您的代码,但它不是验证框架。
在我看来,你应该在另一个真正的验证框架旁边使用它。
在开始使用代码合同之前,建议您阅读用户手册here。它包含所有信息,包括如何自定义运行时检查程序。
答案 1 :(得分:1)
是的,“代码合同”的主要目的是根据我的类设计验证我的代码,但它也描述了我的对象的有效状态。
所有我能想到的验证方案都属于这三种类型:
我认为验证是一个逻辑问题,目标对象是否处于有效状态。
DbC有三个部分,
第一部分(规则)在所有三种验证方案中都很常见。当我使用“代码契约”使用“Not Null”标记属性来验证其设计时,使用“System.ComponentModel.DataAnnotations”为MVC(UI验证)标记“非空”是不是很难看?
抽象地说,有效状态的定义是核心,验证框架和“代码合同”的共享部分提供了它,还有一个额外的域名设计的“静态Cheker”(不是I / O)。