本文翻譯自《Four ways to dispose IDisposables in ASP.NET Core》,由于水平有限,故無(wú)法保證翻譯完全正確,歡迎指出錯(cuò)誤。謝謝!

IDisposable 接口是.NET中最常用的接口之一。當(dāng)類(lèi)型包含非托管資源的引用,比如窗口句柄、文件或網(wǎng)絡(luò)通信,可以實(shí)現(xiàn)IDisposable接口。垃圾收集器自動(dòng)釋放托管(即.NET)對(duì)象的內(nèi)存,但不知道如何處理非托管資源。通過(guò)實(shí)現(xiàn)IDisposable接口,您可以在類(lèi)被釋放時(shí)正確地清理這些資源。

這篇文章介紹了在ASP.NET Core應(yīng)用程序中可以用于處理釋放資源的一些方法,特別是在使用內(nèi)置的依賴(lài)注入容器時(shí)。

為了達(dá)到這篇文章的目的,我在示例中使用下面實(shí)現(xiàn)了IDisposable接口的類(lèi)。為了達(dá)到我們演示的目的,只需要將日志輸出到控制臺(tái),而不需要做任何實(shí)際的清理工作。

public class MyDisposable : IDisposable  {    public MyDisposable()    {
        Console.Wr