微軟認證教材 20486D放在 github的範例比較舊,似乎是 .NET Core 2.x版
我稍微調整後,改成 VS 2019 / .NET Core 5的版本
下載檔名 — MVC_04補充範例_Core5_VS2019_RepositoryExample.rar
搭配 第四天課程 Repository & Interface for (.NET Core 5 MVC)
但 .NET Core 多了一些設定,可參考下面的說明 — 相依性插入 / 依賴注入 (Dependency Injection)
== 參考文件 ==
相依性插入 (DI) / 依賴注入 (Dependency Injection) 可透過下列方式解決這些問題:
— 使用 介面 或 基底類別 來將相依性資訊抽象化。
— 在服務容器中 註冊 相依性。 ASP.NET Core 提供內建服務容器 IServiceProvider。 服務通常會在應用程式的方法中註冊 Startup.ConfigureServices (註:Startup.cs檔) 。
— 將服務「插入」到服務使用位置之類別的建構函式。 架構會負責建立相依性的執行個體,並在不再需要時將它捨棄。
在 範例應用程式中, IMyDependency 介面會定義 WriteMessage 方法:
public interface IMyDependency
{
void WriteMessage(string message);
}
這個 介面 是由具象型別 MyDependency 所實作:
public class MyDependency : IMyDependency
{
public void WriteMessage(string message)
{
Console.WriteLine($”MyDependency.WriteMessage Message: {message}”);
}
}
範例應用程式會 IMyDependency 使用具象類型來註冊服務 MyDependency 。
AddScoped方法會使用範圍存留期(單一要求的存留期)來註冊服務。 將在此主題稍後將說明服務存留期。
(註:Startup.cs檔 的 ConfigureServices 區塊)
public void ConfigureServices(IServiceCollection services)
{
services.AddScoped<IMyDependency, MyDependency>();
services.AddRazorPages();
}
可以參考這篇文章
我將思想傳授他人, 他人之所得,亦無損於我之所有;
猶如一人以我的燭火點燭,光亮與他同在,我卻不因此身處黑暗。 — — Thomas Jefferson
寫信給我,不要私訊 — mis2000lab (at) yahoo.com.台灣 或 school (at) mis2000lab.net
ASP.NET遠距教學、線上課程(Web Form + MVC)。 第一天課程, “完整” 試聽。