我正在尝试在装配级别将MethodDecorator与fody一起使用。
我尝试使用示例代码提供的属性,而未做任何更改:
[AttributeUsage(AttributeTargets.Method | AttributeTargets.Constructor |
AttributeTargets.Assembly | AttributeTargets.Module)]
public class InterceptorAttribute : Attribute, IMethodDecorator {
// The code of the implemented methods doesn't matter.
}
如果我使用[Interceptor]
装饰一种方法,那么一切都将按预期工作。
但是我尝试在程序集中拦截每个方法。该示例代码将此属性定位为AttributeTargets.Assembly
。这表明我可能正在工作。
为此,我在项目的[assembly: InterceptorAttribute]
中添加了AssemblyInfo.cs
。
代码仍然可以正确编译,但是不会调用拦截器。
如果我使用[module: Interceptor]
,也会发生同样的情况。
要使它正常工作,我该怎么做?
还有其他方法可以拦截程序集/模块中的每个方法吗?
更新
我发现MethodBoundaryAspect可以正常工作。