知道这已被问过,但是我的问题稍有不同。将事件添加到接口/实现
我有一个接口:
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,str ing subject,string body,bool bodyIsHTML,Dictionary Attachments);
这样,通过IoC,然后加载相关的IEmailDispatcher实现,并调用该方法。
我的应用程序就可以简单地调用EmailDispatcher.SendEmail(.........
我想事件添加到它,例如OnEmailSent,OnEmailFail等等 让每个实现可以处理发送电子邮件的成功和失败,并相应地记录它们。
我怎么会去这样做呢?
或者,有没有更好的办法?
目前,我使用的是“BasicEmailDispatch呃“基本上使用System.Net命名空间,创建一个MailMessage并发送它。
在未来,我将创建另一个类,即处理邮件不同......它添加到SQL数据库表报告等....等将以不同的方式处理OnEmailSent事件到BasicEmailDispatcher
我不知道如何实现这 - 哪里我的静态类适合的?来电者的“入口点”...? 例如,我有BasicEmailDispatcher,DummyEmailDispatcher ...他们仍然执行IEmailDispatcher吗?或BaseEmailDispatcher ... – Alex 2009-12-29 22:29:39
另外 - 什么原因导致每个EmailSent和EmailFailed事件在每个实现中都会有所不同... – Alex 2009-12-29 23:19:39
对不起 - 我误解了你的需求!在修改我的答案的过程中,我试图澄清一点。至于你的静态类,这真的是一个单独的问题 - 你可以继续使用它,因为你一直在做。 (尽管我建议阅读关于单例和依赖注入的StackOverflow!) – 2009-12-30 01:12:58