Skip to content

Module 7 - Dependency Injection ​

Tóm tắt: Dependency injection trong .NET 10: vì sao lớp không nên tự new phụ thuộc, container hoạt động thế nào, ba lifetime và lỗi captive dependency, Program.cs, options pattern, keyed services và các anti-pattern hay gặp. Module khép lại bằng một case study rò rỉ dữ liệu giữa tenant và bài ôn tập có lab chạy được.

Kiến thức tiên quyết ​

  • Interface, class, constructor (Module 4); generic, lambda, extension method (Module 5); async/await (Module 6).
  • Viết unit test với xUnit (bài 0.4) và chạy một Web API nhỏ (bài 0.5).
  • Module này đứng trước phần ASP.NET Core (Module 8). Middleware, controller, JWT, DbContext xuất hiện trong một số ví dụ đều được giải thích ngắn tại chỗ, kèm link tới bài dạy kỹ. Riêng Bài 2 của bài 7.4 cần EF Core, nên làm sau bài 8.10.

Chuẩn bị môi trường ​

Phần lớn ví dụ chạy bằng project console:

bash
dotnet new console -n DiPlayground
cd DiPlayground
dotnet add package Microsoft.Extensions.DependencyInjection

Dán code vào Program.cs, đặt mọi khai báo class, interface, record ở cuối file (sau code chạy), rồi dotnet run. Ví dụ cần cấu hình hoặc logging thì cài thêm Microsoft.Extensions.Hosting và dùng Host.CreateApplicationBuilder; ví dụ cần ASP.NET Core thì tạo project bằng dotnet new web. Test dùng xUnit và NSubstitute (dotnet add package NSubstitute). Mọi output trong module được chạy trên .NET 10.

Nội dung module ​

Bài liên quan ​

Phát hành theo giấy phép MIT.