有没有人在 .NET 4.0 中实现了企业库 VAB 和代码契约?
如果是这样,您能分享一些见解吗?它对性能有帮助吗?还有其他需要考虑的因素吗?
最佳答案
这两个框架具有不同的范围,因此可以轻松地在同一项目中使用它们。但是,您必须防止在您的域实体中使用代码契约。执行此操作时,所有调用方都必须确保他们不会设置无效值(执行此操作时会发生编译时错误)。但是,对于验证应用程序 block ,必须允许您的实体具有(暂时的)无效状态。否则 VAB 永远无法检测到无效对象。
换句话说,代码契约旨在防止编程错误,而不是用户错误,它为此提供了编译时支持。 VAB 防止用户错误,而不是编程错误*,并为此提供运行时支持。
*好吧,VAB 也可以用于编程错误(事实上,我自己确实以这种方式使用它)但主要场景是用户输入 IMO。
关于.net - 验证应用程序 block 和 .NET 4.0 代码契约(Contract),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2465098/