验证方面应用在 class 级别而不是方法级别
Validate the Aspect is applied at the class level NOT the method level
我有一个 OnMethodBoundaryAspect,在 CompileTimeValidate 方法中我想验证是否在 class 级别应用了 Aspect 属性。
示例:
[MyCustomAspect]
public class SomeClass
{
...
我不希望这样引发编译错误。
示例:
public class SomeClass
{
[MyCustomAspect]
public void SomeMethod() {
...
如何检测我的 Aspect 属性的应用位置?
CompileTimeValidate
方法执行的时刻已经太迟无法验证属性应用程序。 "attribute multicasting" 步骤首先运行,它会将应用于 class 的方法级别方面传播到 class 方法,同时删除原始属性。
要验证属性应用程序,您可以使用 [AttributeUsage]
配置有效目标。
[Serializable]
[AttributeUsage(AttributeTargets.Class)]
public class MyCustomAspect : MethodLevelAspect
{
// ...
}
我有一个 OnMethodBoundaryAspect,在 CompileTimeValidate 方法中我想验证是否在 class 级别应用了 Aspect 属性。 示例:
[MyCustomAspect]
public class SomeClass
{
...
我不希望这样引发编译错误。 示例:
public class SomeClass
{
[MyCustomAspect]
public void SomeMethod() {
...
如何检测我的 Aspect 属性的应用位置?
CompileTimeValidate
方法执行的时刻已经太迟无法验证属性应用程序。 "attribute multicasting" 步骤首先运行,它会将应用于 class 的方法级别方面传播到 class 方法,同时删除原始属性。
要验证属性应用程序,您可以使用 [AttributeUsage]
配置有效目标。
[Serializable]
[AttributeUsage(AttributeTargets.Class)]
public class MyCustomAspect : MethodLevelAspect
{
// ...
}