私の MEF ベースのアプリケーションでは、フォームを使用するモジュールと使用しないモジュールがあります。
これらのフォームの閉鎖に対応できるようにしたいのですが、その方法がわかりません。モジュール タイプはインターフェイスに基づいており、フォームを使用するモジュール タイプは から継承する基本クラスを継承しWindows.Forms.Form
ます。
例えば
public partial class SwatchForm : ModuleForm, IAcquisition
どこ
public partial class ModuleForm : Form
継承するすべてのものIAcquisition
(または他のモジュール インターフェイス) が から継承されるわけではないためModuleForm
、次のことを試しました。
if (this.AcquisitionModule.GetType().IsSubclassOf(typeof(ModuleForm)))
{
(ModuleForm)(this.AcquisitionModule).ModuleFormClosed += whatever....
}
IAcquisition
しかし、まだ何も呼び出されていないと不平を言っていModuleFormClosed
ます。
代わりに例外を使用することも考えましたが、それは少しハックのように感じます。イベントを使用してこれを行う方法はありますか?