내 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
이라고하는 것은 없습니다.
대신 예외를 사용하는 것에 대해 생각했지만 해킹과 같은 느낌입니다. 이벤트를 사용하여이를 수행 할 수있는 방법이 있습니까?
하 석입니다! 그것은 내가 두려워했던 것보다 간단했다. 브래킷을 옮기는 것이 전부였다. 내가 할 수있을 때 받아 들일 것입니다 (5 분). –