为什么我需要处理System.Net.Mail.MailMessage实例?

本文关键字:Mail MailMessage 实例 Net System 处理 为什么 | 更新日期: 2023-09-27 18:17:31

它分配了哪些需要处置的非托管资源?它不只是一个简单的托管数据数组吗?那为什么要处理呢?

为什么我需要处理System.Net.Mail.MailMessage实例?

邮件消息有附件->附件是流->流是要处理的

下面是MailMessage的反编译Dispose方法:

    protected virtual void Dispose(bool disposing)
    {
        if (disposing && !this.disposed)
        {
            this.disposed = true;
            if (this.views != null)
            {
                this.views.Dispose();
            }
            if (this.attachments != null)
            {
                this.attachments.Dispose();
            }
            if (this.bodyView != null)
            {
                this.bodyView.Dispose();
            }
        }
    }

作为一般规则,如果一个类包含的任何子类实现了IDisposable,则该类应该实现它。

一个MailMessage可以有附件,一个附件由MIME部分表示,它本身包含一个流。这个流需要关闭,因为它可能包含一个指向底层数据的非托管指针。