Я использую Библиотека погашения Outlook .
Я пытаюсь получить список папок в магазине Outlook. Мне нужны только папки, которые соответствуют некоторым критериям и нуждаются только в их имени и там DefaultMessageClass .
Итерация объектов RDOFolder довольно медленная, когда учетная запись Exchange без используется кэширование.
Поэтому я поиграл с GetAllChildFolders () и объединил его с помощью метода RODFolderItems find
.
http://www.dimastr.com/redemption/RDOFolders.htm
var allFolder = ((RDOFolder2)rootFolder).GetAllChildFolders();
string folderSelect = "SELECT Name, EntryId, DefaultMessageClass FROM FOLDER WHERE \"http://schemas.microsoft.com/mapi/proptag/0x3613001F\" like '%Note%'";
try
{
RDOFolder vFolder = vFolders.Find(folderSelect);
while (vFolder != null)
{
System.Diagnostics.Debug.WriteLine(vFolder.Name);
System.Diagnostics.Debug.WriteLine(vFolder.EntryID);
System.Diagnostics.Debug.WriteLine(vFolder.DefaultMessageClass);
vFolder = vFolders.FindNext();
}
}
catch (Exception ex)
{
//log error here!
}
Теперь у меня два вопроса!
1. SQL Синтаксис
Из документации find
метод
Свойства, указанные в запросе SQL, должны использовать Outlook Имя свойства объектной модели (или RDO) (например, Subject, Email1Address)
Не удается заставить свойства Outlook или Redemption работать в операторе SQL. У кого-нибудь есть рабочий пример?
2. Свойства доступа к производительности
В онлайн-документации говорится следующее:
Включение предложения SELECT позволяет Redemption предварительно извлекать свойства из таблицы иерархии папок без открытия элемента, в результате чего в значительном приросте производительности (см. пример « I wi sh был один: -) »). Если позднее вы получите доступ к свойству, не указанному в предложении SELECT, Redemption откроет элемент.
Как получить доступ к предварительной выборке свойств из иерархии папок? Если я использую RDOFolder.Name, весь объект папки открывается, и прирост производительности невелик.