2013-12-13 3 views
11

Я пытаюсь найти элементы из удаленных элементов папки с учетом пунктов уникальный идентификаторEWS Managed API найти элементы с ItemID

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 

и тот же код работает если я ищу сообщение с Subject.

ответ

24

Вам не нужно использовать FindItems, если вы уже знаете ItemId

EmailMessage email = EmailMessage.Bind(service, new ItemId(StringItemId)); 
+0

Я люблю тебя, мужчина! Это должно быть тик как ответ. – Elfayer

5

Вы не можете найти в ComplexProperty, например ItemId. Я предполагаю, что Item.Bind не будет работать из-за перемещаемого элемента, который изменил ItemId?

Если это так, то вам нужно использовать SearchFilter для другого свойства. Если это элементы, созданные с помощью EWS, вы можете прикрепить к ним уникальное расширенное свойство и использовать его, если вам нужно его искать.

+0

Да изменение ItemIDs оказались смертельными, и я понял, что это не является надежным механизмом соотнесения элементов, которые были перемещены в другой папки, например «Входящие» для «Удаленные». – nilobarp

Смежные вопросы