我有一个OnMethodBoundaryAspect,在CompileTimeValidate方法中,我想验证是否在类级别应用了Aspect属性。 例如:
[MyCustomAspect]
public class SomeClass
{
...
我不希望这样抛出编译错误。 例如:
public class SomeClass
{
[MyCustomAspect]
public void SomeMethod() {
...
如何检测我的Aspect属性的应用位置?
答案 0 :(得分:0)
CompileTimeValidate
方法执行的时刻已经太晚,无法验证属性应用程序。 “属性多播”步骤首先运行,它会将类上应用的方法级别方面传播到类方法,同时删除原始属性。
要验证属性应用程序,您可以使用[AttributeUsage]
配置有效目标。
[Serializable]
[AttributeUsage(AttributeTargets.Class)]
public class MyCustomAspect : MethodLevelAspect
{
// ...
}