Как правило, вы не должны - удаление почтового сообщения позже будет распоряжаться каждым вложением, которое будет распоряжаться каждым потоком. Кроме того, неспособность избавиться от MemoryStream
, который не используется в удаленном взаимодействии, не принесет никакого вреда.
Я предлагаю вам отключить предупреждение для этого метода.
РЕДАКТИРОВАТЬ: Я подозреваю, что вы можете использовать [SuppressMessage]
для подавления сообщения.
Обратите внимание, что существует риск того, что какой-то код перебросит код на полпути через метод, поэтому в итоге вы никогда не сможете избавиться от сообщения, даже если в вызывающем коде есть оператор using
. Если вы действительно обеспокоены, вы можете написать:
private MailMessage GetMailMessageFromMailItem(Data.SystemX.MailItem mailItem)
{
bool success = false;
var msg = new MailMessage();
try
{
// Code to build up bits of the message
success = true;
return msg;
}
finally
{
if (!success)
{
msg.Dispose();
}
}
}
Лично я бы сказал, что это излишне.