【发布时间】:2009-12-30 09:10:27
【问题描述】:
知道以前有人问过这个问题,但是我的问题略有不同。
我有一个界面:
IEmailDispatcher
看起来像这样:
public interface IEmailDispatcher
{
void SendEmail(string[] to, string fromName, string fromAddress, string subject, string body, bool bodyIsHTML, Dictionary<string, byte[]> Attachments);
}
作为一点背景:
我有一个具有以下方法的静态 EmailDispatcher 类: SendEmail(string[] to, string fromName, string fromAddress, string subject, string body, bool bodyIsHTML, Dictionary Attachments);
这会通过 IoC 加载相关的 IEmailDispatcher 实现,并调用该方法。
然后我的应用程序可以简单地调用 EmailDispatcher.SendEmail(.........
我想向它添加事件,例如 OnEmailSent、OnEmailFail 等... 这样每个实现都可以处理发送电子邮件的成功和失败,并相应地记录它们。
我该怎么做呢?
或者,有没有更好的方法?
目前,我正在使用“BasicEmailDispatcher”,它基本上使用 System.Net 命名空间,创建一个 MailMessage,然后发送它。
将来,我将创建另一个类,以不同方式处理邮件...将其添加到用于报告等的 sql db 表中......因此将以不同于 BasicEmailDispatcher 的方式处理 OnEmailSent 事件
【问题讨论】: