.Net Core 3.0下AOP试水~~

昨天躺了一下3.0的依赖注入的雷

今天顺势把AOP做了一下调整,比如自动化的AOP注入

 

默认的Program里面的CreateHostBuilder方法增加一行

        public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .UseServiceProviderFactory(new JitServiceProviderFactory()) //新增
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder.UseStartup<Startup>();
                });

在Startup里面增加方法

        public void ConfigureContainer(JitAopBuilder builder)
        {
            builder.Add<IMyClass, MyClass>(ServiceLifetime.Singleton);
        }

或者

正常的依赖注入

        public void ConfigureServices(IServiceCollection services)
        {
            services.AddControllers();
            //...略略略
            services.AddSingleton<IMyClass, MyClass>();
        }

默认MyClass上修改一下

    [JitInject]
    public class MyClass: IMyClass
    {
        [JitAop]
        public void Hello()
        {
            Console.WriteLine("Hello");
        }
    }

JitInject特性代表这个类需要AOP注入 JitAop方法则代表这个方法的具体AOP拦截流程,要自定义的话,只需要继承JitAopAttribute类即可

 

支持同步/异步AOP拦截,彼此的流程独立


项目链接

https://github.com/htrlq/NCoreCoder.Framework

 

posted @ 2019-09-25 19:15  沉迷代码的萌新  阅读(1666)  评论(4编辑  收藏  举报