2011-02-15 55 views
8

我已經開始使用代碼合同,並發現它很難立即發現方法的'膽量'。如何在.NET 4.0中使用代碼合同而不會讓代碼看起來混亂?

拿這個(很簡單),例如:

public static void UserAddNew(string domain, string username, string displayName) 
{ 
    Contract.Assert(!string.IsNullOrWhiteSpace(domain)); 
    Contract.Assert(!string.IsNullOrWhiteSpace(username)); 
    Contract.Assert(!string.IsNullOrWhiteSpace(displayName)); 

    LinqDal.User.UserAddNew(domain, username, displayName); 
} 

現在我很想把合同中的區域,使它們可以隱藏起來,但後來我擔心我失去了能夠瀏覽該方法並看到期望的好處。

你做什麼來保持你的合同'整齊'?還是我太挑剔?

+0

可能重複:「如何在不使我的代碼看起來混亂的情況下向應用程序添加新功能?」 – 2011-02-15 08:49:27

+3

AFAICT,這不是新的或特定於代碼合同 - 該方法甚至在CC之前檢查參數,不是嗎?我沒有任何解決辦法,除了一點空白... – Mormegil 2011-02-15 08:59:33

回答

6

查看ContractClass和ContractClassFor屬性。這使您可以在單獨的程序集中編寫帶有代碼合同的類。這可以讓你有可供開發的工作合同,不搞亂你的代碼,同時也意味着你不必部署與現場代碼合同:

Contract Class Attribute

Contract Class For Attribute