我使用ILSpy探索LogAttribute类。但是我不明白它是如何工作的?
据我了解,有两种创建方面的方法:
1)高层:OnMethodBoundaryAspect,OnExceptionAspect,MethodInterceptionAspect,LocationInterceptionAspect,EventInterceptionAspect。
2)低级:具有On *** Advice属性的MethodLevelAspect。
但是LogAttribute既不使用第一种情况也不使用第二种情况。 LogAttribute扩展了MethodLevelAspect,但没有建议。 那么,它如何工作?
答案 0 :(得分:0)
创建问题中描述的方面的两种方法是受支持和记录的方法。但是,在较低级别上,PostSharp SDK将由方面类实现的接口与weaver类进行匹配。然后,选定的编织器处理目标代码元素的IL编织。
提供方面(例如OnMethodBoundaryAspect)和建议(例如OnMethodEntryAdvice)的基类,以使公共方面的实现更加方便。从PostSharp 6.1开始,当前不支持最终用户从头开始创建自定义外观编织器的用例。