我正在开发一个项目,该项目将检索要发送的电子邮件列表。我在一个单独的类中有代码来创建电子邮件所需的项目:
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添加到我的列表中?我需要所有这些项目,所以我可以稍后在我的过程中发送电子邮件。
答案 0 :(得分:4)
您尝试将MailMessage
直接添加到emailMessages
,后者持有EmailStructure
秒。尝试类似:
emailMessages.Add(new EmailStructure()
{
Email = email,
MailId = 42,
MailTypeId = 108
});
用适当的数字。
答案 1 :(得分:0)
您正尝试将类型为MailMessage
的对象添加到类型List<EmailStructure>
的列表中。这就是问题所在。