Статейки не знаю, но можешь отдельно по порядку изучить:
1) dispose pattern
2) как (во что) компилируется using statement в шарпе
3) деструкторы/финализация
4) как наличие деструктора у класса влияет на сборку мусора
5) может ли деструктор быть задан у структуры, почему?
6) зачем нужен SuppressFinalize
7) как
ASP.NET Core dependency injection работает с IDisposable