我有一个
C#服务
那个
连续运行
(servicer manager设置为在崩溃时重新启动服务)。
我正在做大量的工作
事件记录
,我有一个
分层方法
到
异常处理
我认为这至少有点道理:
-
顶级
通用异常、空异常和启动异常处理程序。
-
指挥级
“(即服务运行的特定操作)
-
最后,我处理了一些在
我一直在考虑是否有任何资源没有被适当地释放,我开始怀疑我的邮件代码(发送电子邮件)。我注意到我没有打电话给Dispose
邮件对象
,我现在重写了SendMail代码,如下所示。
这个
是:
-
此代码是否会正确释放用于发送邮件的所有资源?
-
我看不出有什么办法
处置
的
SmtpClient对象
?
-
(作为记录:我没有使用对象初始值设定项使示例更易于阅读)
private static void SendMail(string subject, string html)
{
try
{
using ( var m = new MailMessage() )
{
m.From = new MailAddress("service@company.com");
m.To.Add("user@company.com");
m.Priority = MailPriority.Normal;
m.IsBodyHtml = true;
m.Subject = subject;
m.Body = html;
var smtp = new SmtpClient("mailhost");
smtp.Send(m);
}
}
catch (Exception ex)
{
throw new MyMailException("Mail error.", ex);
}
}