PostSharp:实现特定接口的aspecting类

时间:2015-10-01 07:19:38

标签: .net-4.5 postsharp

我可以在Web服务项目的AssemblyInfo.cs文件中进行多重声明,在特定命名空间下面向类的方法。

这适用于我的ASP.NET web api项目。

我想通过接口,我想要受某些类型的方面的东西,我将在类中实现一个特定的接口(只是一个空白的接口),然后在AssemblyInfo文件,我会做类似的事情:

<session name="mysession@10.0.0.22" start="2015-09-28T05:00:01.974Z">

我测试 这不起作用 。 AttributeTargetTypes仅适用于名称空间。

当web api类/控制器增长时,我可以轻松地通过接口标记来管理类。

1 个答案:

答案 0 :(得分:1)

将aspect属性应用于接口方法时,还可以启用此属性的传播到在具体类中实现接口的方法。为此,您需要在应用属性时设置AttributeInheritance属性。在您的情况下,应该将其设置为MulticastInheritance.Strict

[assembly: My.AOP.ValidateArguement(
    AttributeTargetTypes = "My.WebServices.IWebApi",
    AttributeInheritance = MulticastInheritance.Strict
    /* ... */
)]

有关详情,请参阅Understanding Aspect Inheritance文档页面。