は、私はちょうど私のデータベースの種類を服用してはMailMessageに変換しています。このコードコード解析が文句を言うと私はオブジェクトを処分していません。ここで何が間違っていますか?
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;
}
考えてみましょう。 別の機能で送信されます。
コード解析では、正しい "msg"を削除していないことがわかります。しかし、私がここでそれをすれば、私はそれを送信しようとしているときに例外になります。
また、ここでのMemoryStreamを配置しないで文句:
msg.Attachments.Add(新アタッチメント(新しいのMemoryStream(attachment.Data)、 attachment.Name));
正しく処理する方法についてはわかりません。私は別のものを試してみましたが、基本的にはないはず「ストリームが閉じている」
警告を抑制するにはどうすればよいですか? – katit
@katit:合格 - 私はコード分析を使用しません。私は確かに指示がたくさんありますが、オンラインです。 –
@Downvoter:コメントするには? –