关于将检查所有公共方法的类的方面

时间:2015-09-23 09:25:27

标签: postsharp

寻找更简单的异常处理方法。

我可以为此目的执行OnExceptionAspect,但这需要明确归因于预期的方法。

是否有更简单的方法,例如在类级别归属/标记,它将监视/检查/注入异常抛出的所有公共方法?

因此,我只需要在类级别显式标记方面,其中的任何公共方法都将自动订阅方面功能。

1 个答案:

答案 0 :(得分:1)

您可以将OnExceptionAspect放到任何类中。然后,所有它的方法(公共的,私人的,受保护的)将被方面装饰。

OnExceptionAspect甚至可以放在程序集级别上,并且可以选择哪个类在哪个类中作为方面“multicasted”。例如:

[assembly: MyOnException(AttributeTargetTypes = "MyNamespace.*",
    AttributeTargetTypeAttributes = MulticastAttributes.Public,
    AttributeTargetMemberAttributes = MulticastAttributes.Public)]

将MyOnException方面多播到MyNamespace(以及所有子命名空间)中所有公共类中的所有公共方法。