2011-01-19 4 views
2

Windowsフォームコントロールのコレクションを購入しました。それらの機能を拡張するために、ベースから継承して独自の等価物を作成しました。基本的なコントロール(買ったもの)の使用を禁じる方法はありますか?誰かが外部クラスライブラリのクラスを使用すると、コンパイルエラーを報告する方法

誰かがベースコントロール(ソースにアクセスできない)を使用している場合、コンパイラはエラーまたは警告を報告し、自分のクラス(ベースから継承する)を使用するように提案します。

アイデア?

+0

「等価物」のアセンブリを個別に作成します。 "メインプロジェクト"でこのアセンブリを参照し、 "メインプロジェクト"のサードパーティライブラリへの参照を削除します。あなたはコンパイルエラーを受けるでしょう –

+0

@Khurram - 私もそのように考えていましたが、サードパーティ製のライブラリをメインプロジェクトに追加する誰かを止めるものは何もありません。 – ChrisF

+0

サードパーティライブラリが含まれている必要があります。私たちは40個のコントロールから10個の拡張しかできませんでした...すでにKhurram Azizの提案どおりに考えていました – stanik

答えて

3

write a custom FXCop ruleこれをチェックして、これをビルドプロセスに統合することができます。 VS2010では、fxcopを選択することで、すべてのビルドに組み込むことができます。また、CIビルドや夜間ビルドの一部として実行することもできます。

+0

あなたは私の前に「新しい世界」を開いています。私はFxCop SDKで遊ぶ必要がありますが、提供したリンクをクリックして例を見たとき、これはおそらく私が探しているものです。ありがとうございました... (私はすでにPostBuidに自分自身の "コンパイラ"を書くことに近いです:) – stanik

0

ポストビルドイベントを使用してこれを実行できます。ソリューション内の各プロジェクトを開く小さなexeファイルを作成します。アセンブリ内の各型を読み取り、間違った型のインスタンスが作成されていないことを確認します。

関連する問題