Не удается найти определенный календарь Outlook - PullRequest
1 голос
/ 30 ноября 2011

Я пытаюсь найти определенный календарь Outlook.Я посмотрел на инструкции из этого Надстройка Outlook: получить элементы из выбранного календаря .

Когда я пытаюсь реализовать его с помощью этого кода:

public static MAPIFolder GetTimeTrackingCalendar()
{
MAPIFolder result = null;
MAPIFolder calendars = (MAPIFolder)outlook.ActiveExplorer().Session.GetDefaultFolder(OlDefaultFolders.olFolderCalendar);
for (int i = 0; i < calendars.Folders.Count; i++)
{
    if (calendars.Folders[i].Name == "MyTimeTracker")
    {
        result = calendars.Folders[i];
        break;
    }
}
return result;

}

Я получаю сообщение об ошибке, указав, что индекс массива выходит за пределы.Осматривая объект calendars, они представляют собой две папки, но ни одна не поддерживает свойство Name.Я пропустил актерский состав?

Спасибо, Билл N

1 Ответ

1 голос
/ 30 ноября 2011

Просто для дальнейшего использования, Outlook (и другие объекты автоматизации Office) используют индексы на основе 1 вместо 0 на основе. Вот что вызывает ошибку «индекс массива вне границ».

Изменение цикла исправляет это:

for (int i = 1; i <= calendars.Folders.Count; i++)
{
    if (calendars.Folders[i].Name == "MyTimeTracker")
    {
        result = calendars.Folders[i];
        break;
    }
}
...