2012-07-30 77 views
3

我正在研究將檢索要發送的電子郵件列表的項目。我有一個單獨的類代碼來創建我們需要對電子郵件的內容:如何將項目添加到具有不同數據類型的列表中

public class EmailStructure 
{ 
    public MailMessage Email { get; set; } 
    public int MailId { get; set; } 
    public int MailTypeId { get; set; } 
} 

我有一個返回的數據,並通過每條記錄數據集中創建新MailMessage循環的代碼,我的問題是,當我嘗試了MailMessage添加到我的名單,我得到一個錯誤,指出:

參數類型System.New.Mail.MailMessage是不能分配給參數類型「EmailStructure」。

顯然我在這裏做錯了什麼,但我找不出什麼問題。我的代碼如下:

class SendMails 
{ 
    public List<EmailStructure> emailMessages = new List<EmailStructure>(); 
    public List<GetOutboundEmailsResult> emailResults = new List<GetOutboundEmailsResult>(); 

    public Extract() 
    { 
     // get data from DB 
    } 

    public void Transform() 
    { 
     if(emailResults.Any()) 
     { 
      foreach (GetOutboundEmailsResult item in emailResults) 
      { 
       var emailBody = GetEmailBody(item); 

       // create email this returns the type as MailMessage 
       var email = emailHandler.ComposeNewEmail(
        System.Configuration.ConfigurationManager.AppSettings["Mailbox"], 
        item.MailboxFrom, 
        string.Empty, 
        string.Empty, 
        emailBody.ToString(), 
        true, 
        "test"); 

       // add email message to List<MailMessage> 
       // need to add MailMessage, MailId, MailTypeId 
       emailMessages.Add(email); // error is appearing here 
      } 
     } 
    } 

    public Route() 
    { 
     // send the emailMessages 
     foreach(var row in emailMessages) 
     { 
      // need to use the MailId, MailTypeId here from the list 
      emailHandler.SendNewEmail(row.Email) 
     } 
    } 
} 

如何將MailMessage,Maild和MailTypeId添加到我的列表中?我需要所有這些項目,以便在我的流程中稍後使用方法發送電子郵件。

回答

4

您正在嘗試將MailMessage直接添加到emailMessages,後者持有EmailStructure s。嘗試類似:

emailMessages.Add(new EmailStructure() 
{ 
    Email = email, 
    MailId = 42, 
    MailTypeId = 108 
}); 

無論數字是否合適。

+0

謝謝,我知道這是類似的東西,但我無法弄清楚。 – Taryn 2012-07-30 18:11:20

0

您正在嘗試將類型爲MailMessage的對象添加到類型爲List<EmailStructure>的列表中。那就是問題所在。

相關問題