Я расширяю класс System.Net.Mail.MailAddress
для включения поля идентификатора, поэтому я создал новый пользовательский класс MailAddress
, унаследованный от существующего класса, и новый пользовательский класс MailAddressCollection
.Затем я переопределил существующий System.Net.Mail.MailMessage.To
, чтобы использовать мою новую коллекцию.
Я хотел бы обрабатывать получателей параллельно, но не могу понять синтаксис правильно.Это синтаксис, который я использую.
Parallel.ForEach(EmailMessage.To, (MailAddress address) =>
{
emailService.InsertRecipient(emailId, address.DisplayName, address.Address, " ");
});
Я получаю следующие ошибки:
Лучший перегруженный метод соответствует для System.Threading.Tasks.Parallel.ForEach (System.Collections.Generic.IEnumerable, System.Action) 'содержит недопустимые аргументы
Аргумент 1: невозможно преобразовать из' EmailService.MailAddressCollection 'в' System.Collections.Generic.IEnumerable '
Какой синтаксис мне нужен для использования пользовательских коллекций?
Вот класс EmailService.MailAddress:
public class MailAddress : System.Net.Mail.MailAddress
{
/// <summary>
/// Contains an identifier of the address for use in sending unique email links.
/// </summary>
public string ID = "";
public MailAddress(string Address) : base(Address)
{
}
public MailAddress(string Address, string Name): base(Address, Name)
{
}
public MailAddress(string Address, string Name, string Id) : base(Address, Name)
{
ID = Id;
}
}