为什么我需要处理System.Net.Mail.MailMessage实例?
本文关键字:Mail MailMessage 实例 Net System 处理 为什么 | 更新日期: 2023-09-27 18:17:31
它分配了哪些需要处置的非托管资源?它不只是一个简单的托管数据数组吗?那为什么要处理呢?
邮件消息有附件->附件是流->流是要处理的
下面是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部分表示,它本身包含一个流。这个流需要关闭,因为它可能包含一个指向底层数据的非托管指针。