.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