VS 2010代码分析报告如下:
警告4 CA2000:Microsoft.Reliability:在方法'Mailer.SendMessage()'中,对象'client'未沿所有异常路径放置.对所有对它的引用超出范围之前,在对象'client'上调用System.IDisposable.Dispose.
我的代码是:
public void SendMessage()
{
SmtpClient client = new SmtpClient();
client.Send(Message);
client.Dispose();
DisposeAttachments();
}
Run Code Online (Sandbox Code Playgroud)
我该如何正确处理客户?
更新:回答Jons问题,这里是dispose附件功能:
private void DisposeAttachments()
{
foreach (Attachment attachment in Message.Attachments)
{
attachment.Dispose();
}
Message.Attachments.Dispose();
Message = null;
}
Run Code Online (Sandbox Code Playgroud)
最后更新全班上市(简称)
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())
{ …Run Code Online (Sandbox Code Playgroud)