知道這已被問過,但是我的問題稍有不同。將事件添加到接口/實現
我有一個接口:
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