Перечисление Почтового ящика Outlook с помощью Visual Studio

У меня была te ошибка , Взаимодействие с пользователем не позволяется и решило ее путем разблокирования связки ключей сначала

security unlock-keychain /Users/yannooo/Library/Keychains/login.keychain

, я также попытался поместить свои сертификаты в связку ключей Системы, и она работала. Мое конечное решение состояло в том, чтобы поместить все мои связанные с iPhone сертификаты в специальную связку ключей, названную iPhone.keychain использование Доступ Связки ключей приложение

security list-keychains -s /Users/yannooo/Library/Keychains/iPhone.keychain 
security unlock-keychain -p keychainpassword /Users/yannooo/Library/Keychains/iPhone.keychain 
6
задан Nigel Ainscoe 17 September 2009 в 15:15
поделиться

2 ответа

Причина в том, что элементы коллекции содержат экземпляры MailItem и ReportItem. Указание MailItem слева не фильтрует список, а просто указывает, какой тип вы ожидаете в списке.

Что вам нужно сделать, так это отфильтровать нужный тип, поэтому

foreach ( MailItem oItem in theMailFolder.Items.OfType<MailItem>()) {
  ..
}

Метод OfType будет только вернуть значения в коллекции, соответствующие этому конкретному типу.

8
ответ дан 10 December 2019 в 00:41
поделиться

Объявление типа в цикле foreach не фильтруется по типу - вместо этого выдается исключение, как вы заметили.

Это происходит потому, что ] foreach был введен в C # 1.0, который не поддерживает обобщенные типы. Таким образом, компилятор не может узнать, какой тип возвращает IEnumerator . (Это все еще верно, если коллекция не реализует IEnumerable ). Nitpickers : Я знаю, что даже в C # 1 можно написать строго типизированный перечислитель (например, List ); подавляющее большинство - нет.

Тогда, если вы случайно поместили неправильный тип в foreach , вы бы предпочли, чтобы он генерировал исключение, а не таинственным образом ничего не делал.

2
ответ дан 10 December 2019 в 00:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: