2012-11-11 2 views
0

개체가 완료되기 전에 일부 정리 코드를 수행 할 수 있도록이 이벤트 또는 이와 유사한 방식으로 구독 할 수 있습니까?라이브러리 어셈블리에서 Application.ApplicationExit을 구독하는 방법

+0

모든 이벤트에 가입하는 것과 같은 방식입니다. 무슨 문제가있는 것 같습니까? – Oded

+0

메인 폼 어셈블리가 아니라 dll로부터? – bricklayer137

+0

예? 그리고 무엇이 문제인 것처럼 보입니까? 이것은 정적 이벤트입니다. – Oded

답변

1

이벤트와 동일한 방식으로이 이벤트를 구독합니다.

ApplicationExit MSDN 페이지의 예는 분명하다 :

Application.ApplicationExit += new EventHandler(this.OnApplicationExit); 

private void OnApplicationExit(object sender, EventArgs e) { 
    // do your cleanups 
} 
3

이벤트는 해당하므로, 어떠한 문제가 발생하지 않는 DLL에서 사용 정적이다.

그러나 클래스 라이브러리가 실제로 Winforms 응용 프로그램에서 사용되는 경우에만 이벤트가 발생합니다. WinForms 앱에서만 사용할 수있는 기능을 노출 한 경우에만이를 확인할 수 있습니다. 사용자 지정 컨트롤이나 UserControl과 같습니다.

대신 AppDomain 이벤트, DomainUnload 및 ProcessExit가 있습니다. 또는 주 앱이 종료 사실을 알리라고 기대합니다. 어느 것이 일반적으로 더 나은 선택입니까, 반드시 을 알고 있습니다. 앱이 종료됩니다. 예를 들어 하드 충돌시 설정을 저장하고 싶지는 않습니다. ApplicationSettingsBase 클래스가 그 패턴을 따르는 방법에 유의하십시오. 명시 적으로 Save() 메서드를 호출해야합니다.

관련 문제