コードコントラクトのコードリライターをオンにすると、以前は機能していたコードに問題が発生し始めました。
自分protected volatile bool
のクラスを継承するクラスの他のアセンブリから表示されるメンバーフィールドがあります。アセンブリでccrewriteを有効にした後、そのフィールドへのアクセスでMissingFieldExceptionがスローされるようになりました。
この方法でフィールドを公開するのは悪いスタイルであることを私は知っています。プロパティを公開したり、揮発性マーカーを削除したりするように変更すると、問題は解決します。
現在、100%のコードカバレッジはありません。
私の質問は、どうすればコードコントラクトに依存できますが、コードは以前と同じように機能しますか?動作が変化したすべての場所を見つけるにはどうすればよいですか?
コードコントラクトバージョン1.4.50327.0
Microsoft (R) .NET Contract Rewriter Version 1.4.50327.0
編集コードコントラクトでいくつかの作業が行われていますが、リリースノートは素晴らしいものではありません。具体的には、何が修正されたかは明確ではありません。私は引用しています:
リリース1.4.51019.0(2012年10月19日)VS2012のタスクマネージャーに関するその他の問題を修正しました。CCDocのバグを修正しました。その他のその他のバグ修正。
リリース1.4.50910.0(2012年9月10日)タスクマネージャーが修正され、VS2012で正しく実行されるようになりました。静的チェッカーがバックグラウンドで実行され、波線が描画され、契約の提案がエラーリストに表示されます。インストール後に「devenv/setup」を手動で実行する必要がなくなるように、インストーラーを更新しました。これは、インストールの一部として自動的に実行されるようになりました。(これにより、インストールにかなり時間がかかります...)CCDocのいくつかのバグを修正します。
リリース1.4.50813.1(2012年8月13日)バグ修正(どこでも!)。パフォーマンスの向上(静的チェッカー)。精度の向上(静的チェッカー)。インストーラーとビルドファイルの修正。
リリース1.4.50327.0(2012年3月27日)VS2012サポート!(ただし、インストール後に「devenv / setup」を手動で実行する必要があります!)バグ修正。