gpt4 book ai didi

c# - PostSharp OnMethodBoundaryAspect

转载 作者:行者123 更新时间:2023-11-30 15:11:20 27 4
gpt4 key购买 nike

我正在使用 postsharp 1.5 和 OnMethodBoundaryAspect 处理一个方面。我希望我的方面默认具有以下行为:

1 - 如果在类级别使用属性,则方面仅应用于 PUBLIC 方法。

2-方面的用户可以将方面放在私有(private)或 protected 方法中。

如果我用这个[多播属性用法(MulticastTargets.Method, TargetMemberAttributes = MulticastAttributes.Public)]第 1 点有效,但情况 2 甚至无法构建,因为不兼容。

然后我尝试使用:AttributeTargetTypeAttributes = MulticastAttributes.Public;在方面的构造函数中,但不起作用。

非常感谢您。

最佳答案

遗憾的是,无法使用单个方面类来实现您的要求。

您可以使用三个方面类:

public abstract class MyAspect : OnMethodBoundaryAspect
{
}

[MulticastAttributeUsage(...,
TargetMembersAttributes = MulticastAttributes.Public )]
[AttributeUsage(AttributeTargets.Class)]
public class ClassLevelAspect : MyAspect
{
}

[MulticastAttributeUsage(...,
TargetMembersAttributes = MulticastAttributes.NonPublic )]
[AttributeUsage(AttributeTargets.Method)]
public class MethodLevelAspect : MyAspect
{
}

-盖尔

关于c# - PostSharp OnMethodBoundaryAspect,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2507224/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com