【发布时间】:2011-01-28 17:40:08
【问题描述】:
有没有人在 .NET 4.0 中使用代码合同实现企业库 VAB?
如果是这样,您能分享一些见解吗?它对性能有帮助吗?还有其他需要考虑的因素吗?
【问题讨论】:
标签: .net validation .net-4.0 enterprise-library validationframework
有没有人在 .NET 4.0 中使用代码合同实现企业库 VAB?
如果是这样,您能分享一些见解吗?它对性能有帮助吗?还有其他需要考虑的因素吗?
【问题讨论】:
标签: .net validation .net-4.0 enterprise-library validationframework
两个框架都有不同的范围,因此它们可以很容易地在同一个项目中使用。但是,您必须防止在域实体中使用代码协定。执行此操作时,所有调用者必须确保他们没有设置无效值(执行此操作时会发生编译时错误)。但是,使用验证应用程序块,必须允许您的实体具有(暂时)无效状态。否则 VAB 无法检测到无效对象。
让我换种说法,代码契约旨在防止编程错误,而不是用户错误,它为此提供了编译时支持。 VAB 防止用户错误,而不是编程错误*,并为此提供运行时支持。
*好吧,VAB 也可以用于编程错误(事实上,我自己也是这样使用的)但主要场景是用户输入 IMO。
【讨论】: