C#で欠落している属性に基づいてコンパイラエラーを生成する方法は?
-
03-10-2019 - |
質問
Revit Structure APIに多くのアドインを作成します。各ツールは、インターフェイスiExternalCommandを実装するクラスをハベする必要があります。
Revitの最新バージョンでは、あなたのツールを動作させるには、そのインターフェイスを実装する2つの属性がクラスにある必要があります。
Regeneration(RegenerationOption.Manual)] [Transaction(TransactionMode.Automatic)]
括弧内の値は変わる可能性がありますが、そこには何かがなければなりません。多くの場合、私は属性を装着するのを忘れていることに気づき、それからランタイムに関してはクラッシュします。 Visual Studio 2010には、クラスがそのインターフェイスを実施する場合、それらの2つの属性が必要であると言うコンパイラ警告またはエラーを追加する方法はありますか?それが役立つなら、私は再harperを持っています。
誰かが私を正しい方向に向けることができますか?
解決
残念ながら違います。 (私はresharperについては知りませんが)
VS2010 Ultimateがある場合は、カスタムコード分析ルールを記述できます。
他のヒント
コンパイル時間中ではありませんが、反射で簡単にできると思います。
リフレクションを使用してコンパイルされたアセンブリを調べ、指定されたインターフェイスを使用してすべてのクラスを見つけ、それらのクラスで属性をチェックして、優れたフレンドリーなエラーメッセージを非常にすばやく返す別のプログラムをお勧めします。
プログラムをコンパイルした後もこのプログラムを実行する必要がありますが、IDEによっては、ビルド後のステップとして設定できます。