Итак, я уже некоторое время использую System.Net.Mail.MailMessage
объекты для отправки электронной почты через SmtpClient
. Я где-то заметил, что MailMessage
реализует IDisposable
, поэтому я всегда использую его в блоке using
.
using(MailMessage msg = new MailMessage())
{
msg.To = blah... etc;
...
smtpclient.Send(msg);
}
Из метаданных вы можете увидеть эту информацию о реализации MailMessage
// Summary:
// Releases all resources used by the System.Net.Mail.MailMessage.
[TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")]
public void Dispose();
//
// Summary:
// Releases the unmanaged resources used by the System.Net.Mail.MailMessage
// and optionally releases the managed resources.
//
// Parameters:
// disposing:
// true to release both managed and unmanaged resources; false to release only
// unmanaged resources.
protected virtual void Dispose(bool disposing);
Но мне интересно, почему MailMessage
реализует IDisposable
? Похоже, он не имеет ничего общего с сетевыми элементами, потому что SmtpClient
обрабатывает все это.
Может ли это быть из-за возможного хранения файловых дескрипторов для вложенных файлов? Есть ли что-то еще, о чем я забыл?