0
我正在構建一個名爲Mailer的屬性的助手對象。實際上,Mailer可以是System.Net.Mail.MailMessage或Mono.System.Net.Mail.MailMessage。所以我最好只想要1個郵件聲明。C#如何動態地轉換對象?
例如,我不想:
private Mono.Mailing.MailMessage MonoMessage = new Mono.Mailing.MailMessage();
private System.Net.Mail.MailMessage MailMessage = new System.Net.Mail.MailMessage();
我寧願
object mailer;
然後在構造函數中
switch (software)
{
case EnunInternalMailingSoftware.dotnet:
this.mailer = new System.Net.Mail.MailMessage();
break;
case EnunInternalMailingSoftware.mono:
this.mailer = new Mono.Mailing.MailMessage();
break;
}
的問題是,郵件具有在設計時沒有屬性。所以我無法編譯我的代碼。
這是如何解決的,我採取了正確的方法。在此先感謝
您能否提供一些基本的概述? – 2010-05-25 09:38:14
@JL - 定義包含您想要調用的方法的IMailer接口。然後,創建一個MonoMailerAdapter類,實現此接口並保存可將方法調用委託給的Mono Mailer類的實例。同樣爲System.Net版本創建一個適配器。然後你的'對象郵件程序'字段變成'IMailer郵件程序';' – Paolo 2010-05-25 09:40:01
非常感謝你 - 現在正在研究。 – 2010-05-25 09:42:48