【问题标题】:Using postSharp how to capture all method entry and exit event at class level?使用 postSharp 如何在类级别捕获所有方法进入和退出事件?
【发布时间】:2020-12-06 08:52:52
【问题描述】:

当我在该方法上应用我的自定义属性时,我可以使用 postsharp 捕获该方法的进入和退出事件。但是,当我在类级别而不是方法级别应用属性时,有什么方法可以捕获方法的进入和退出?例如,当我应用该属性时,它应该捕获该类下任何方法的进入和退出。下面是方法级捕获的示例代码

public class CustomAttr: OnMethodBoundaryAspect
    {
        [NonSerialized]
        public override void OnEntry(MethodExecutionArgs args)
        {
            //do something
        }

        public override void OnSuccess(MethodExecutionArgs args)
        {
            //do something
        }
    }

【问题讨论】:

标签: c# .net postsharp


【解决方案1】:

是的,这称为“属性多播”。有几种方法可以做到这一点,所有这些方法都记录在https://doc.postsharp.net/applying-aspects

正如@Peter Bons 在评论中提到的那样,您所要求的记录在https://doc.postsharp.net/attribute-multicasting#all-members 中,它的工作原理与您期望的完全一样 - 您将属性应用于类,并且该类的所有方法都将得到增强各自的方面。请参阅文档以了解如何过滤掉一些方法,例如按名称或知名度。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-23
    • 1970-01-01
    • 1970-01-01
    • 2015-08-01
    • 2011-09-22
    • 2012-01-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多