基于netcore的微服务——AspectCore(AOP框架)(3)

一、示例代码

项目引入包

<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.大致实现过程

在这里插入图片描述

posted @ 2022-05-20 08:41  有诗亦有远方  阅读(35)  评论(0)    收藏  举报  来源