私は Code Contracts にかなり慣れていません...そして問題に遭遇しました。
私は次のようなメソッドLINQクエリを持っています:
MyClass[] fields =
(from p in rType.GetProperties()
where p.CanRead
let fAttr = p.GetCustomAttributes(typeof(MyClassAttribute), true).SingleOrDefault() as MyClassAttribute
where fAttr != null
select new MyClass(p, fAttr)).ToArray();
そして、プロジェクトにコード コントラクトを実装したいと考えています。この時点に到達するまで、すべてを正常に実行しました。静的チェッカーを実行すると、クエリで定義されている変数 p と fAttr に関するいくつかの前提条件 (Contract.Requires) を追加する必要があることが示唆されます。また、証明されていない要件がいくつかあります。
どうすればこれを解決できますか? 何か案は?
MyClass には、次の 2 つの前提条件も含まれています。
internal MyClass(PropertyInfo p, MyClassAttribute att)
{
Contract.Requires(p != null);
Contract.Requires(att != null);
...
}
前もって感謝します :)