consideran este códigoEl análisis de código se queja de que no estoy eliminando objetos. ¿Que esta mal aquí?
private MailMessage GetMailMessageFromMailItem(Data.SystemX.MailItem mailItem)
{
var msg = new MailMessage();
foreach (var recipient in mailItem.MailRecipients)
{
var recipientX = Membership.GetUser(recipient.UserKey);
if (recipientX == null)
{
continue;
}
msg.To.Add(new MailAddress(recipientX.Email, recipientX.UserName));
}
msg.From = new MailAddress(ConfigurationManager.AppSettings["EmailSender"],
ConfigurationManager.AppSettings["EmailSenderName"]);
msg.Subject = sender.UserName;
if (!string.IsNullOrEmpty(alias)) msg.Subject += "(" + alias + ")";
msg.Subject += " " + mailItem.Subject;
msg.Body = mailItem.Body;
msg.Body += Environment.NewLine + Environment.NewLine + "To reply via Web click link below:" + Environment.NewLine;
msg.Body += ConfigurationManager.AppSettings["MailPagePath"] + "?AID=" + ContextManager.AccountId + "&RUN=" + sender.UserName;
if (mailItem.MailAttachments != null)
{
foreach (var attachment in mailItem.MailAttachments)
{
msg.Attachments.Add(new Attachment(new MemoryStream(attachment.Data), attachment.Name));
}
}
return msg;
}
sólo estoy tomando mi tipo de base de datos y la conversión a MailMessage. Se envía en otra función.
El análisis de código me dice que no me estoy deshaciendo de "msg", que es correcto. Pero si lo hago aquí, obtengo una excepción cuando intento enviarlo.
Además, se queja de no disponer MemoryStream aquí:
msg.Attachments.Add (nuevo Adjunto (nueva MemoryStream (attachment.Data), attachment.Name));
No tengo idea de cómo desecharlo correctamente. Probé cosas diferentes pero recibía excepciones cuando enviaba un mensaje que decía "Stream se cierra"
¿Cómo elimino las advertencias? – katit
@katit: Pase: no uso el análisis de código. Sin embargo, estoy seguro de que hay muchas instrucciones en línea. –
@Downvoter: ¿me gustaría comentar? –