如何在应用程序退出时使用PostSharp执行一段代码?
问题描述:
目前,我在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检测应用程序退出的更强大的方法是什么?
答
我不认为你应该使用PostSharp来做到这一点。
可以检测应用程序域是否通过使用System.AppDomain的一些特征退出:)
- AppDomain.IsFinalizingForUnload(
- AppDomain.ProcessExit
- AppDomain.DomainUnload
这绝对是真的;) – 2010-01-23 12:30:47
我想以面向方面的方式实现这一点。 – 2010-01-26 00:40:30