3

Has anyone implemented the Enterprise Library VAB along wtih Code Contracts in .NET 4.0?

If so, can you share some insights? Did it help in performance? Any other factors to be considered?

4

1 回答 1

5

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

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

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

于 2010-03-19T23:11:04.610 回答