すべての Outlook アイテムの本文を検索したいと思います。4 つの 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 );
}
}
}
Body は、取得したい 4 つの PIM 項目の共通プロパティです。そのような親アイテムはありますか?そうでない場合は、API 設計が貧弱に見えますか? 親アイテムがあるように見せるために、フォルダーアイテムを抽象化できると思います...リフレクションを使用してこれを実行しようとしましたが、そこに到達できませんでした。
何か提案はありますか?