コードコントラクトでVS2010Ultimateを使用しています。予期しないランタイム動作が発生した後、リフレクターでソースコードを確認し、不変条件がコンパイルされていないことに気付きました。生成された__ContractsRuntime
クラスには、、、、およびの定義のみがAssert
含まれます。すべての句に対して、タイプごとに1つ以上のプライベートメソッドを使用しています。組み立てモードとして設定された「標準契約が必要」で完全な契約チェックを行っています。 Ensures
ReportFailure
Requires<TException>
TriggerFailure
[ContractInvariantMethodAttribute]
Contract.Invariant(...)
私のアセンブリファイルには、次のアセンブリ属性が含まれています。
[assembly: RuntimeContracts(RuntimeContractsFlags.InheritContracts | RuntimeContractsFlags.StandardMode | RuntimeContractsFlags.ThrowOnFailure | RuntimeContractsFlags.Assumes | RuntimeContractsFlags.Asserts | RuntimeContractsFlags.Invariants | RuntimeContractsFlags.Ensures | RuntimeContractsFlags.Requires | RuntimeContractsFlags.RequiresWithException | RuntimeContractsFlags.LegacyRequires)]`
誰かがこの問題や、私の不変条件が期待どおりに機能しない理由についての洞察を持っていますか?