为什么.net的MailMessage类的To属性是只读的?

时间:2009-03-19 10:46:31

标签: c# email

我有一个MailAddressCollection,其中包含我要发送电子邮件的所有地址,但不能简单地拥有:

myMessage.To = myMailAddressCollection;

我必须这样做:

foreach (MailAddress address in myMailAddressCollection)  
{  
    myMessage.To.Add(address);  
}

任何人都可以解释为什么这样的类配置?我是否遗漏了一些能够分配给To,CC或Bcc属性的其他方式?

2 个答案:

答案 0 :(得分:8)

MailMessage类想要保护它的属性,这是正确的封装。

如果它支持AddRange方法,那么你的任务会更容易一些,但是你的代码就像它的代码一样简单。

答案 1 :(得分:1)

我知道这很旧,但万一有人偶然发现它:

MailAddressCollection.Add可以接受以逗号分隔的电子邮件地址字符串。 MailAddressCollection.ToString方法返回包含电子邮件地址的逗号分隔字符串。

因此OP可以做到这一点:

myMessage.To.Add(myMailAddressCollection.ToString());

AddRange方法仍然是首选。