VS 2010 анализ кода сообщает следующее:
Предупреждение 4 CA2000: Microsoft.Reliability: В методе «Mailer.SendMessage ()» объект «клиент» расположен не по всем путям исключений.Вызовите System.IDisposable.Dispose для объекта 'client', прежде чем все ссылки на него выйдут из области видимости.
Мой код:
public void SendMessage()
{
SmtpClient client = new SmtpClient();
client.Send(Message);
client.Dispose();
DisposeAttachments();
}
Как правильно распоряжаться клиентом?
Обновление: для ответа на вопрос Джонса, вот распоряжениефункциональность вложений:
private void DisposeAttachments()
{
foreach (Attachment attachment in Message.Attachments)
{
attachment.Dispose();
}
Message.Attachments.Dispose();
Message = null;
}
Последнее обновление полный список классов (сокращенно)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net.Mail;
public class Mailer
{
public MailMessage Message
{
get;
set;
}
public Mailer(MailMessage message)
{
this.Message = message;
}
public void SendMessage()
{
using (SmtpClient client = new SmtpClient())
{
client.Send(Message);
}
DisposeAttachments();
}
private void DisposeAttachments()
{
foreach (Attachment attachment in Message.Attachments)
{
attachment.Dispose();
}
Message.Attachments.Dispose();
Message = null;
}
}