.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

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM