MethodInterceptionAspect 的替代方案

Alternative for MethodInterceptionAspect

我需要限制一些关于许可证的功能。所以我在 postSharp 中使用 MethodInterceptionAspect 创建了一个属性并验证了我需要的字段。 是否有任何其他第三方制作 aop 自定义属性? 我知道存在动态代理,但我也想要注释部分。

示例:

namespace ConsoleApp1
{
    [Serializable]
    public class LicenseValidator : MethodInterceptionAspect
    {
        readonly String name;

        public LicenseValidator(String name)
        {
            this.name = name;
        }

        public override void OnInvoke(MethodInterceptionArgs args)
        {
            if (name = ! "notInvoke")
            {
                args.Proceed();
            }
            else
                Console.WriteLine("Not executed !");


        }
        }
}

以及它的用法:

[LicenseValidator("tal")]
public static Boolean PrintHi(int num)
{
    Console.WriteLine("Hi");
    return true;
}

注意:这只是一个用法示例,不是我的代码。但这是我想用的方法来解决我的问题。

还有其他方法可以用属性实现吗?第 3 方或手动。

谢谢!

您可以使用其他第 3 方,例如 Spring.NET、Castle Windsor、Aspect.NET 等。 或者你可以使用 Unity 或 StractureMap 等 Ioc Container

PostSharp is CompileTime and other are runTime.

也可以使用AspectInjector。 它非常简单,而且 CompileTime 喜欢 postSharp 。

你可以看到这个link如何使用它。

希望有用