回答

5

兩個框架都有不同的範圍,因此可以很容易地在同一個項目中使用它們。但是,您必須防止在您的域實體中使用代碼合同。當你這樣做時,所有的調用者都必須確保它們不會設置無效的值(當你這樣做的時候會發生編譯時錯誤)。但是,通過驗證應用程序塊,您的實體必須被允許具有(暫時)無效狀態。否則VAB無法檢測到無效的對象。

讓我說吧,否則,Code Contracts是爲了防止編程錯誤,而不是用戶錯誤,並且它爲編譯時提供了支持。 VAB防止用戶錯誤,而不是編程錯誤*併爲此提供運行時支持。 *好吧,VAB也可以用於編程錯誤(事實上,我自己也是這樣使用它),但主要場景是用戶輸入IMO。

+0

Code Contracts可以進行編譯時和運行時檢查(取決於您使用的是哪個版本的Visual Studio)。 – adrianbanks 2010-03-19 23:14:28

+0

我沒有真正說CC沒有提供運行時支持:-)主要的一點是它檢查編程錯誤。 – Steven 2010-03-22 12:53:00

+0

感謝您的簡潔回答。你如何使用VAB來防止編程錯誤? – Nick 2010-03-23 13:52:43

相關問題