我想实现自定义LogAttribute,它将在类中的每个方法的开头和结尾记录信息,也应该记录错误.我想将该属性应用于Class.
我见过PostSharp.但我想拥有自己的自定义日志属性,而不是使用PostSharp或类似的库.
性能是主要关键,LogAttribute不应影响性能.
我已阅读有关IMessageSync的信息,但它会影响性能.
在MVC中,我们得到CustomFilters,其中我们可以使用LogActionHandler,它将在每个Action方法的开头和结尾执行.我想在ASP.Net web Form中实现类似的功能.
任何人都可以提供一些示例代码来帮助我.
Unity - Microsoft 的 IoC/依赖注入容器也允许方法拦截。
这是“DiagnosticsInterceptor”的示例,其功能与您想要的相同: http://hmadrigal.wordpress.com/2010/12/25/aspect-oriented-programming-and-interceptor-design-pattern-with-unity -2/
优点:它是免费的
缺点:它需要 Unity/DI/IoC 模式。你的类需要有一个接口,或者一个虚拟方法。
不幸的是,对于 ASP.NET 控件来说并非如此。因此,此方法仅适用于您的自定义类:请参阅Intercept Unity 2.0 HandlerAttribute without an interface