我需要限制一些关于许可证的功能。所以我在 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 等。 或者你可以使用 Ioc Container,例如 Unity 或 StractureMap 等。
PostSharp is CompileTime and other are runTime.
也可以使用 AspectInjector
。
它非常简单,也像 postSharp 一样 CompileTime
。
可以看到这个link如何使用它。
希望有用
关于c# - MethodInterceptionAspect 的替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57943956/