.net - 验证应用程序 block 和 .NET 4.0 代码契约(Contract)

标签 .net validation .net-4.0 enterprise-library validationframework

有没有人在 .NET 4.0 中实现了企业库 VAB 和代码契约?

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

最佳答案

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

换句话说,代码契约旨在防止编程错误,而不是用户错误,它为此提供了编译时支持。 VAB 防止用户错误,而不是编程错误*,并为此提供运行时支持。

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

关于.net - 验证应用程序 block 和 .NET 4.0 代码契约(Contract),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2465098/

相关文章:

.net - TestServer CreateClient和HttpClientHandler-如何?

c# - c# 桌面应用程序的最佳安全框架?

c# - 概念(可能是事件代理?)

javascript - 修复电子邮件的正则表达式以不允许连续的句点

c# - 是否有 Visual Studio 加载项的配置类型文件?

c# - 在不公开 Entity Framework 依赖/实现细节的情况下使用 EdmFunctionAttribute?

c# - 检查账户类型

javascript - 使用正则表达式进行表单验证

javascript - jQuery 验证器 addMethod,无论显示什么错误消息

.net-4.0 - VS 2010 中的转换错误