如何在不使代码看起来混乱的情况下在.NET 4.0中使用代码契约?

时间:2011-02-15 08:35:23

标签: c#-4.0 code-formatting code-contracts contracts

我已经开始使用代码合约,并且发现它很难立即发现方法的“胆量”。

以此(非常简单)为例:

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);
}

现在我很想将合同放在一个地区,这样它们就可以被隐藏起来,但是我担心我失去了一个很好的优点,就是能够看一眼该方法并看看它是什么预计。

你如何保持合同“整洁”?或者我只是太挑剔了?

1 个答案:

答案 0 :(得分:6)

查看ContractClass和ContractClassFor属性。这允许您在单独的程序集中编写具有代码契约的类。这使您可以使合同可用于开发工作,不会使代码混乱,也意味着您不必使用实时代码部署合同:

Contract Class Attribute

Contract Class For Attribute