AspectCore框架
一、示例代码
项目引入包
<PackageReference Include="AspectCore.Core" Version="0.5.0" />
1.执行方法
public class Person
{
[Customlnterceptor]
public virtual void Say(string name)
{
Console.WriteLine($"你好,我是{name}");
}
}
2.特性
class CustomlnterceptorAttribute:AbstractInterceptorAttribute
{
public async override Task Invoke(AspectContext context,AspectDelegate next)
{
Console.WriteLine("执行之前");
await next(context);//执行被拦截得方法
Console.WriteLine("执行之后");
}
3.Program.cs
static void Main(string[] args)
{
ProxyGeneratorBuilder proxyGeneratorBuilder = new ProxyGeneratorBuilder();
using(IProxyGenerator proxyGenerator = proxyGeneratorBuilder.Build())
{
Person p = proxyGenerator.CreateClassProxy<Person>();
p.Say("张三");
}
Console.ReadKey();
}

二、解析
1.传入得Context内容

2.内容解析

3.大致实现过程

这篇博客介绍了如何使用AspectCore框架创建一个简单的AOP拦截器。首先,展示了在项目中引入AspectCore.Core包的步骤。接着,定义了一个带有CustomInterceptor特性标记的Say方法,并实现了拦截器的Invoke方法,展示执行前后打印语句。最后,通过ProxyGenerator创建代理对象并调用Say方法,从而触发拦截器的执行流程。
3324

被折叠的 条评论
为什么被折叠?



