コードベースからクラスを「削除」するための賢明な (ここではひとつまみの塩が必要です) メカニズムがあるかどうかについて質問があります。ここで .cs ファイルを削除しようとしているのではなく、クラスを「無効化」しようとしています。
クラス定義の「宣言解除」に沿って何かを行うものを探しています。
この少し変わった要求のアイデアの理由は、いくつかの共有エンティティを持つ PCL があるためです。[PrimaryKeyAttribute]
これらのエンティティは SQLite によって使用され、PCL ライブラリでエンティティ PK をマークできるようにSQLite プロパティを定義しました。
私の消費ライブラリには、Windowsランタイム用のSQLiteがインストールされており、linqのようなラッパー用に「sqlite-net」がインストールされています。[PrimaryKeyAttribute]
が定義されているのはこのラッパーです。
私が望んでいた[PrimaryKeyAttribute]
のは、PCL ライブラリで以下のようにクラスを定義することでした。
namespace SQLite
{
[AttributeUsage(AttributeTargets.Property)]
public class PrimaryKeyAttribute : Attribute
{
}
}
しかし、それに関する問題は、消費するライブラリで同じ定義によって上書きされることです。消費するライブラリの定義から属性をコメントアウトすると、問題なく動作しますが、私 (または他の誰か) が sqlite-net パッケージを更新するとすぐに、データ アクセスが失敗するため、多くの問題が発生します。 .
別のファイルのコードに適用できる、何らかの形式の一種の「コンパイルしない」フラグを探していると思います。これに関するアイデア/考えはありますか?