web-dev-qa-db-ja.com

EWSマネージAPIはItemIDを持つアイテムを検索します

アイテムの一意のIDを指定して、削除されたアイテムフォルダからアイテムを検索しようとしています

ItemId id = new ItemId("zTK6edxaI9sb6AAAQKqWHAAA");
SearchFilter.IsEqualTo filter = new SearchFilter.IsEqualTo(ItemSchema.Id, id);
ItemView view = new ItemView(10);
view.PropertySet = new PropertySet(BasePropertySet.FirstClassProperties, EmailMessageSchema.Subject);
FindItemsResults<Item> results = _ExchangeService.FindItems(WellKnownFolderName.DeletedItems, filter, view);
Console.WriteLine(results.TotalCount);

このコードは、次のような例外を返します。

Validation failed.
Parameter name: searchFilter

件名のあるメッセージを検索しても同じコードが機能します。

16
nilobarp

ItemIdを既に知っている場合は、FindItemsを使用する必要はありません。

EmailMessage email = EmailMessage.Bind(service, new ItemId(StringItemId));
36
Abhi

ItemIdなどのComplexPropertyを検索することはできません。 ItemIdを変更したアイテムが移動されたため、Item.Bindが機能しないと思いますか?

その場合は、別のプロパティでSearchFilterを使用する必要があります。これらがEWSを介して作成したアイテムである場合、それぞれに一意の拡張プロパティを添付して、検索する必要がある場合にそれを使用できます。

6
user1017413