我正在用一个方法编写一个简单的小类发送电子邮件。我的目标是在旧版 Visual Basic 6 项目中实现它,通过 COM 互操作工具将其作为 COM 对象公开。
我发现有一个细节很难解决,那就是我在验证参数时应该有多细。从这个角度来看,我真的不满意的一件事,而且根本不是细节,是我实际处理异常的方式:
public class MyMailerClass
{
#region Creation
public void SendMail(string from, string subject, string to, string body)
{
if (this.IsValidMessage(from, subject, to, body)) // CS1501
{
MailMessage msg = new MailMessage();
msg.IsBodyHtml = true;
msg.From = new MailAddress(from);
msg.To.Add(to);
msg.Subject = subject;
msg.Body = body;
SmtpClient srv = new SmtpClient("SOME-SMTP-HOST.COM");
srv.Send(msg);
}
else
{
throw new ApplicationException("Invalid message format.");
}
}
#endregion Creation
#region Validation
private bool IsValidMessage(string from, string subject, string to, string body)
{
Regex chk = new Regex(@"(\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,6})");
if (!chk.IsMatch(from))
{
return false;
}
if (!chk.IsMatch(to))
{
return false;
}
if (!string.IsNullOrEmpty(subject))
{
return false;
}
if (!string.IsNullOrEmpty(body))
{
return false;
}
else
{
return true;
}
}
#endregion Validation
}
任何建议将不胜感激,因此非常感谢您的所有评论!
注意:在这种特殊情况下实现企业库的验证应用程序块是否方便?