我想搜索所有 Outlook 项目的正文。我知道如何为四个 PIM 项目(Notes/Tasks/Appointments/Contacts)执行此操作。但是除了将 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 );
}
}
}
Body 是我想要获得的四个 PIM 项目的共同属性。有这样的父项吗?如果不是,API 设计似乎很糟糕?我想我可以抽象文件夹项目,让它看起来像有一个父项目......我也尝试使用反射来做到这一点,但不能完全到达那里。
有什么建议吗?