2010-01-22 33 views
0

目前,我在OnMethodBoundaryAspect.OnExit方法检查方法名称:如何在应用程序退出时使用PostSharp执行一段代码?

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

显然,这是丑陋的,感觉缺憾。使用PostSharp检测应用程序退出的更强大的方法是什么?

回答

2

我不认为你应该使用PostSharp来做到这一点。

可以检测应用程序域是否通过使用System.AppDomain的一些特征退出:)

  • AppDomain.IsFinalizingForUnload(
  • AppDomain.ProcessExit
  • AppDomain.DomainUnload
+0

这绝对是真的;) – 2010-01-23 12:30:47

+0

我想以面向方面的方式实现这一点。 – 2010-01-26 00:40:30

相关问题