我编码与单一方法的简单的小类发送电子邮件。 我的目标是实现它在传统的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
}
任何建议将非常感激, 感谢这么多提前为所有您的意见!
注 :难道是实现企业图书馆的便利验证应用程序块在这种特殊情况下?