Я бы хотел обыскать все предметы внешнего вида. Я знаю, как сделать это для четырех элементов PIM (Заметки / Задачи / Встречи / Контакты). Но код идентичен для всех них, за исключением приведения объекта COM к конкретному типу элемента (то есть ContactItem, AppointmentItem и т. Д.). Есть ли родительский класс для этих элементов PIM, чтобы я мог сделать что-то подобное в моем цикле:
using Outlook = Microsoft.Office.Interop.Outlook
List SearchFolderItems( Outlook.Folder folder )
{
List results = new List();
foreach( object folderItem in folder.Items )
{
//GenericPIMItem is what I am wishing for
Outlook.GenericPIMItem item = (Outlook.GenericPIMItem)folderItem;
if( item.Body.ToLower().Contains( "secret sauce" ) )
{
results.Add( item.Name );
}
}
}
Тело - это общее свойство четырех предметов PIM, к которым я хочу получить. Есть ли такой родительский элемент? Кажется плохой дизайн API, если нет? Полагаю, я мог бы абстрагировать элемент папки, чтобы он выглядел так, как будто есть родительский элемент ... Я также пытался сделать это с помощью отражения, но не смог добраться до него.
Есть какие-нибудь предложения?