0

コードベースからクラスを「削除」するための賢明な (ここではひとつまみの塩が必要です) メカニズムがあるかどうかについて質問があります。ここで .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 パッケージを更新するとすぐに、データ アクセスが失敗するため、多くの問題が発生します。 .

別のファイルのコードに適用できる、何らかの形式の一種の「コンパイルしない」フラグを探していると思います。これに関するアイデア/考えはありますか?

4

0 に答える 0