【发布时间】:2011-09-22 08:17:42
【问题描述】:
这是我的功能。我已经将客户端和消息都包装到 using 子句中,并且在运行代码检查时仍然出现错误。错误指向第一个使用行:
public static void Send(MailItem mail)
{
var sender = Membership.GetUser(mail.CreatedBy);
if (sender == null)
{
return;
}
using (var msg = new MailMessage { From = new MailAddress(ConfigurationManager.AppSettings["EmailSender"], ConfigurationManager.AppSettings["EmailSenderName"]) })
{
foreach (var recipient in mail.MailRecipients)
{
var recipientX = Membership.GetUser(recipient.UserKey);
if (recipientX == null)
{
continue;
}
msg.To.Add(new MailAddress(recipientX.Email, recipientX.UserName));
}
msg.Subject = "[From: " + sender.UserName + "]" + mail.Subject;
msg.Body = mail.Body;
if (HttpContext.Current != null)
{
msg.Body += Environment.NewLine + Environment.NewLine + "To reply via Web click link below:" +
Environment.NewLine;
msg.Body += ConfigurationManager.AppSettings["MailPagePath"] + "?AID=" +
ContextManager.CurrentAccount.AccountId + "&RUN=" + sender.UserName;
}
try
{
using (var emailClient = new SmtpClient())
{
emailClient.Send(msg);
}
}
catch (Exception ex)
{
Logger.LogException(ex);
}
}
}
这是我收到的警告:
警告 1 CA2000: Microsoft.Reliability:方法中 'Email.Send(MailItem)', 对象 'g_initLocal0' 未释放 沿着所有异常路径。称呼 System.IDisposable.Dispose 对象 'g_initLocal0' 在所有之前 对它的引用不在 范围。 C:\CodeWorkspace\Code\Utility\Email.cs 41
【问题讨论】:
-
那么你的代码中的第 41 行是什么?
-
@BrokenGlass:他的代码第 41 行的是是什么?
-
@Mehrdad:不可能说考虑到这只是文件中代码的一部分。
-
我在帖子中说过错误指向第一个“使用”行
标签: c# code-inspection