7
  • Code Contracts ver: 1.4.40602.0 を使用しています。
  • 必要なコンテンツと変換ファイルをコピーしました
  • サンドキャッスルは、契約要件に基づいて例外を出力します

コード例:

public class MyClass
{
    public MyClass(Object obj)
    {
        Contract.Requires<ArgumentNullException>(obj != null);
    }
}

結果の出力(私のドキュメント内):

| Exception                       | Condition                       |
|---------------------------------|---------------------------------|
| System.ArgumentNullException    | obj == null                     |

これはそれほど悪くはありません、Condition のテキストをカスタマイズする方法はあるのでしょうか? ユーザー メッセージを追加しようとしましたが、Contract.Requires<ArgumentNullException>(obj != null, "obj is null.");何も解決しませんでした。

以前は、例外用に独自の xml ドキュメント セクションを作成する必要がありました。必要なものを得るために、もう一度それをしなければならないのでしょうか?


免責事項: Code Contracts は (現在) DevLabs プロジェクトであるため、これは変更される可能性がありますが、現在既に利用可能であるかどうか疑問に思っています...そうでない場合は、必ず提案します.

4

1 に答える 1

3

コードコントラクト1.4.51019.0では、オーバーロードを使用できます。

Requires<TException>(bool condition, string userMessage)

ただし、「前提条件が失敗しました」の後に一致しない条件が続くと、メッセージが追加されます。Sandcastleがそれを認識しない場合、メッセージが正しく表示されるため、コードコントラクトの障害ではないと思います。

于 2012-12-13T18:07:23.773 に答える