Как выполнить блок кода с помощью PostSharp при выходе из приложения? - PullRequest
0 голосов
/ 23 января 2010

В настоящее время я проверяю имя метода в методе OnMethodBoundaryAspect.OnExit:

[Serializable]
public class TimerAttribute : OnMethodBoundaryAspect
{
    public override void OnExit(MethodExecutionEventArgs eventArgs)
    {
        if(eventArgs.Method.DeclaringType.Name == "Program" && eventArgs.Method.Name == "Main")
            //do things
    }
}

Очевидно, это уродливо и кажется глупым. Есть ли более надежный способ обнаружения выхода из приложения с помощью PostSharp?

1 Ответ

2 голосов
/ 23 января 2010

Не думаю, что для этого нужно использовать PostSharp.

Вы можете определить, выходит ли домен приложения, используя некоторые функции System.AppDomain:

  • AppDomain.IsFinalizingForUnload ()
  • AppDomain.ProcessExit
  • AppDomain.DomainUnload
...