Visual Studio 2017以降ではコードコントラクトはサポートされていなかった
仕事の中でGithubから少し古いdllのソースコードを調査することがありました。
ダウンロードしてデバッグ実行をするとこんなエラーなりました。
実行前の状態が失敗しました。
実行できなかったので、どうしたものかと思い調べているとMicrosoftに
Code Contracts(契約プログ ラミング)の記事を見つけました。
https://docs.microsoft.com/ja-jp/dotnet/framework/debug-trace-profile/code-contracts
ざっくり言うと、メソッドに入るとき、出るときの条件を記述して、それを満たしていないとエラーにするものですかね。
確かにGitHubに公開されていたDLLでは事前条件のコード
Contract.Requires(passObject != null);
があり、正しくない形で呼ばれたときに弾くために記載されていました。
記事にも書いてある通り.NET 5以降はサポートされていないのでVisualStudioでも2017以降はサポートされていませんでした。
結局、Contract系のメソッドを全部消して動作させました。