PostSharp 无法从 TargetMembers 中排除 aspect
PostSharp cannot exclude aspect from TargetMembers
我正在工作的项目正在使用 PostSharp v4.2 来应用日志记录等方面。这些方面适用于 AssemblyInfo.cs 中具有多播的目标,并且它们工作正常。
多播定义如下
[assembly: LoggingAspect.LogAspect(AttributeTargetTypes = "regex:Api.Controllers.Services.*|Api.Controllers.Bananas.*",
AttributeTargetMembers = "regex:Get.*|Create.*|Edit.*|Delete.*"
AspectPriority = 1, AttributeExclude = false)]
现在我需要从记录中排除 2 个方法。所以要排除我添加的方法:
[assembly: LoggingAspect.LogAspect(AttributeTargetMembers = "GetUtilityToken", AspectPriority = 2, AttributeExclude = true)]
我不知道为什么,但方面仍然应用于方法(GetUtilityToken、GetDevUtility),即使我按照 documentation .. I even tried targeting with regex or wild card like AttributeTargetMembers = "Get*"
but the aspect still gets applied. I have looked at this question PostSharp - excluding a method using AttributeExclude doesn't work 中所述应用了排除但我没有 LINQ 查询方法..
我不知道我错过了什么...任何人都可以指出可能导致此行为的原因吗?或者指出我该如何调试它?
您应该使用 AttributePriority 而不是 AspectPriority。
我正在工作的项目正在使用 PostSharp v4.2 来应用日志记录等方面。这些方面适用于 AssemblyInfo.cs 中具有多播的目标,并且它们工作正常。 多播定义如下
[assembly: LoggingAspect.LogAspect(AttributeTargetTypes = "regex:Api.Controllers.Services.*|Api.Controllers.Bananas.*",
AttributeTargetMembers = "regex:Get.*|Create.*|Edit.*|Delete.*"
AspectPriority = 1, AttributeExclude = false)]
现在我需要从记录中排除 2 个方法。所以要排除我添加的方法:
[assembly: LoggingAspect.LogAspect(AttributeTargetMembers = "GetUtilityToken", AspectPriority = 2, AttributeExclude = true)]
我不知道为什么,但方面仍然应用于方法(GetUtilityToken、GetDevUtility),即使我按照 documentation .. I even tried targeting with regex or wild card like AttributeTargetMembers = "Get*"
but the aspect still gets applied. I have looked at this question PostSharp - excluding a method using AttributeExclude doesn't work 中所述应用了排除但我没有 LINQ 查询方法..
我不知道我错过了什么...任何人都可以指出可能导致此行为的原因吗?或者指出我该如何调试它?
您应该使用 AttributePriority 而不是 AspectPriority。