8

私はコードコントラクトを使い始めましたが、メソッドの「根性」をすぐに見つけるのが難しいことがわかりました。

この(非常に単純な)例を見てください:

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

今、私は契約を地域に置いて、それらを隠すことができるようにしたいと思っていますが、それから私はメソッドを一瞥してそれが何を期待するかを見ることができるという素晴らしい利点を失っているのではないかと心配しています。

契約を「整頓」するために何をしますか?それとも私はあまりにもうるさいですか?

4

1 に答える 1

6

ContractClass属性とContractClassFor属性を見てください。これにより、コードコントラクトを使用してクラスを個別のアセンブリに記述できます。これにより、開発作業にコントラクトを利用できるようになり、コードが乱雑になることはなく、ライブコードを使用してコントラクトをデプロイする必要がなくなります。

コントラクトクラス属性

属性のコントラクトクラス

于 2011-02-15T09:07:35.150 に答える