我想搜索所有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设计不佳?我想我可以抽象出文件夹项,让它看起来像是有一个父项......我也尝试用反射做这个,但是不能完全实现。
有什么建议吗?