私の 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ます。
代わりに例外を使用することも考えましたが、それは少しハックのように感じます。イベントを使用してこれを行う方法はありますか?