.NET Core 目前大多都是透過相依性注入(Dependency Injection)的方式來有效管理程式碼,以 .NET Core 6 為例,可以在program.cs中先建置.NET Core 程式專案的一些基本設置,像是相依性插入 (DI)、設定、中介軟體等,當專案一啟動時就被建置或設定。
目前遇到的例子是,早期寫好的共用物件(DBUtil)已經在各程式中被廣泛引用,目前先不異動原來的程式碼(以前有用DI就不會有這問題),並非透過相依性注入(Dependency Injection)來取得,而是透過一個中介的靜態類別。
作法:在program.cs中先設置好Configuration並取得appsetting.json的資料庫連結資訊,再把Configuration傳遞到手動新增的靜態類別ConfigurationHelper中,最後在共用物件(DBUtil)的建構子中來取得Configuration。
1.先新增一個靜態類別叫ConfigurationHelper
2. 在Program.cs中,完成Configuration的設置(例如取得appsetting.json內的資料庫連線資料),接下來再把Configuration傳遞到剛剛建立的ConfigurationHelper靜態類別中。
3. 最後在我們自已的公用程式物件,在建構子來取得靜態類別ConfigurationHelper來取得需要的內容,透過Configuration.GetConnectionString的方式來存取appsettings.json的連線資訊。