验证应用程序块和.NET 4.0代码约定

Nic*_*ick 3 .net validation enterprise-library .net-4.0 validationframework

有没有人在.NET 4.0中实现企业库VAB和代码合同?

如果是这样,你能分享一些见解吗?它对性能有帮助吗?还需要考虑其他因素吗?

Ste*_*ven 5

两个框架都有不同的范围,因此可以轻松地在同一个项目中使用.但是,您必须阻止在域实体中使用代码约定.执行此操作时,所有调用方必须确保它们不设置无效值(执行此操作时将发生编译时错误).但是,使用验证应用程序块,必须允许您的实体具有(暂时)无效状态.否则VAB无法检测到无效对象.

让我说不然,Code Contracts旨在防止编程错误,而不是用户错误,它为此提供编译时支持.VAB可以防止用户错误,而不是编程错误*并为此提供运行时支持.

*好吧,VAB也可以用于编程错误(事实上,我自己也是这样使用它)但主要场景是用户输入IMO.