(五)React Ant Design Pro + .Net5 WebApi:后端環境搭建-Autofac注入+ 泛型倉儲


一、 簡介

Autofac與.Net Core自帶DI的區別,大佬級的文章數不勝數。我只是根據實際應用簡單介紹(非常簡單的那種)
1、批量注入,自帶DI需要自己寫循環反射注入,Autofac現成方法,簡潔的多。
2、其他功能,Autofac玩法豐富,官網或其他文章都有介紹。

二、 使用

1、Nuget
2、Program.cs
3、Startup.cs
這里需要添加一個方法,在方法里進行注入,注入時在最后帶上.PropertiesAutowired()是開啟屬性注入。如果內容太多比較臃腫,注入模塊也可以單拎出去

//新建注冊類,繼承Autofac.Module,修改Startup.cs
public void ConfigureContainer(ContainerBuilder builder)
{
    builder.RegisterModule(new AutofacModuleRegister());
}
public class AutofacModuleRegister : Autofac.Module
{
    protected override void Load(ContainerBuilder builder)
    {
        //注入代碼
    }
}

三、 倉儲

幾點理解看法或者說是疑問吧
1、看了好多概念定義,大佬們對倉儲都實現代碼不盡相同。我Get到是:倉庫管理員通過某種方式對所有貨物進行管理。表象就是ORM操作數據庫,雖然方式不同,但是效果呢好像跟ADO的“暴力SQL”又沒啥區別,可能學習了DDD之后就能有更深層次的理解吧。
2、BaseService:IBaseService,如果跟BaseRepository:IBaseRepository結構一樣,只是讓TService通過BaseService再調用倉儲,那存在的意義是什么?IBaseRepository已經注入,TService直接調用就好了。BaseService寫一些公共方法供TService調用,比如獲取權限、字典等等,可能是這樣不符合設計模式?
3、結合實際業務開發及編碼習慣定義了每層類庫之間的關系,也許隨着學習深入能get到上述點,可以再完善。目前結構是這樣的:
Controller構造函數獲取所需服務接口ITService,每個接口對應一個服務實現類TService,並繼承BaseService,TService構造函數獲取倉儲供方法調用。
這是幾個空方法,EF登場后再完善。

四、相關閱讀

https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/dependency-injection?view=aspnetcore-5.0
https://autofac.readthedocs.io/en/latest/getting-started/index.html
https://autofac.readthedocs.io/en/latest/integration/aspnetcore.html#asp-net-core-3-0-and-generic-hosting
https://www.cnblogs.com/laozhang-is-phi/p/all-knowledge-for-netcore.html
https://www.cnblogs.com/clis/p/14294042.html
https://www.cnblogs.com/shewoqishui/p/14636489.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM