Моя цель - открыть общие календари для анализа и трассировки базы данных.
Суть в том, что мне удается открыть элементы, но через несколько сотен я получаю исключение.Это объясняет, что администратор (по соображениям безопасности) ограничил количество одновременно открытых элементов.
Я могу понять это, поэтому я попытался закрыть каждый элемент после прочтения.Но я все еще получаю ошибку.Проблема возникает, когда я читаю пользовательские свойства.
Вот пример моей программы:
Recipient recipient = mapiNamespace.CreateRecipient("John Doe");
if (recipient.Resolve())
{
CalendarFolder = mapiNamespace.GetSharedDefaultFolder(recipient, OlDefaultFolders.olFolderCalendar);
outlookCalendarItems = CalendarFolder.Items;
outlookCalendarItems.IncludeRecurrences = false;
}
else
{
Console.Write("Failed to open Calendar");
return;
}
foreach (Microsoft.Office.Interop.Outlook.AppointmentItem item in outlookCalendarItems)
{
Console.WriteLine(item.Subject + " -> " + item.Start.ToLongDateString()); //=> Ok, no problem
UserProperty up = item.UserProperties.Find("Test"); //=> Problem if too many items
if( up!= null )
{
Console.Write("UserProperty Value: " + up.Value);
}
((Microsoft.Office.Interop.Outlook._AppointmentItem)item).Close(OlInspectorClose.olDiscard); //=> Problem if too many items
Console.WriteLine();
}
Console.ReadKey();
Есть идеи, как правильно закрыть элементы?