我已经开始使用代码合约,并且发现它很难立即发现方法的“胆量”。
以此(非常简单)为例:
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 :(得分:6)
查看ContractClass和ContractClassFor属性。这允许您在单独的程序集中编写具有代码契约的类。这使您可以使合同可用于开发工作,不会使代码混乱,也意味着您不必使用实时代码部署合同: