3

RevitStructureAPI用にいくつかのアドインを作成します。各ツールは、インターフェイスIExternalCommandを実装するクラスを持っている必要があります。

Revitの最新バージョンでは、ツールを機能させるには、そのインターフェイスを実装するクラスに2つの属性が必要です。

[Regeneration(RegenerationOption.Manual)] [Transaction(TransactionMode.Automatic)]

括弧内の値は変更できますが、そこに何かがあるはずです。多くの場合、属性を設定するのを忘れていることに気づき、ランタイムになるとクラッシュします。Visual Studio 2010に、クラスがそのインターフェイスを実装する場合、これら2つの属性が必要であるというコンパイラの警告またはエラーを追加する方法はありますか?それが助けになるなら、私はリシャーパーを持っています。

誰かが私を正しい方向に向けることができますか?

4

2 に答える 2

4

残念ながら違います。(ただし、Resharperについてはわかりません)

VS2010 Ultimateを使用している場合は、カスタムのコード分析ルールを作成できます。

于 2010-05-06T01:16:55.650 に答える
2

コンパイル時ではありませんが、リフレクションを使えば簡単だと思います。

リフレクションを使用してコンパイルされたアセンブリを調べ、指定されたインターフェイスを持つすべてのクラスを見つけ、それらのクラスの属性をチェックして、わかりやすいエラー メッセージをすばやく返す別のプログラムをお勧めします。

プログラムをコンパイルした後もこのプログラムを実行する必要がありますが、IDE によっては、ビルド後のステップとして設定できます。

于 2010-05-06T01:30:25.860 に答える