Итак, я использовал System.Net.Mail.MailMessage
объекты для отправки электронной почты через SmtpClient
какое-то время. Я заметил, что MailMessage
реализует IDisposable
, поэтому я всегда использую его в блоке using
.Почему System.Net.Mail.MailMessage реализует IDisposable
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
обрабатывает все это.
Возможно ли это из-за потенциального хранения файлов для прикрепленных файлов? Есть ли что-то еще, что я забываю?
Вложения должны быть закрыты для одного. –