私は次の方法を持っています:
private void DoSomething(CoolClass coolClass)
{
if (coolClass == null)
{
throw new ArgumentNullException("coolClass");
}
coolClass.Name = "Pepe";
}
Code Contracts を使用すると、次のように記述できます。
private void DoSomething(CoolClass coolClass)
{
Contract.Requires<ArgumentNullException>(coolClass != null, "IS NULLL!");
coolClass.Name = "Pepe";
}
2 番目の方法は、短くて簡単です。私が抱えている問題は、それをビルドすると、実行時に例外がスローされず、次のように表示されることです。
説明: アセンブリ (おそらく "CodeContractsTest") は、コード コントラクト バイナリ リライター (CCRewrite) を使用して書き換える必要があります。これは、Contract.Requires を呼び出しており、CONTRACTS_FULL シンボルが定義されているためです。プロジェクトから CONTRACTS_FULL シンボルの明示的な定義をすべて削除し、再構築します。CCRewrite はhttp://go.microsoft.com/fwlink/?LinkID=169180からダウンロードできます。リライターをインストールしたら、Visual Studio の [コード コントラクト] ペインのプロジェクトの [プロパティ] ページから有効にすることができます。CONTRACTS_FULL を定義する「Perform Runtime Contract Checking」が有効になっていることを確認します。
VS を使用しない限り、ここから .net の CodeContracts をダウンロードします。
次に、プロジェクトの「ランタイム チェック」をチェックして、ランタイムでビルドすると例外がスローされるようにします。
私たちのアプリは、PowerShell スクリプトを使用して Jenkins で構築されています。単純なコマンドや属性、または簡単なものを使用して、実行時にチェックインして例外をスローする方法はありますか?