2013-12-13 8 views
11

Próbuję znaleźć elementy z folderu Elementy usunięte ze względu na przedmioty unikalny identyfikatorEWS Managed API znaleźć przedmioty z 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); 

Ten kod zwraca wyjątek mówiący:

Validation failed. 
Parameter name: searchFilter 

Te same prace kodu jeśli szukam wiadomości z Tematem.

Odpowiedz

24

Nie trzeba używać FindItems jeśli już wiesz ItemID

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

Kocham Cię, człowieku! To powinno być zaznaczone jako odpowiedź. – Elfayer

5

Nie można wyszukiwać w ComplexProperty, takiej jak ItemId. Zakładam, że Item.Bind nie będzie działał z powodu przeniesienia przedmiotu, który zmienił ItemId?

Jeśli tak jest, to musisz użyć filtru SearchFilter w innej usłudze. Jeśli są to Elementy utworzone za pomocą EWS, możesz dołączyć do nich unikatową Rozszerzoną Właściwość i użyć jej, jeśli chcesz ją wyszukać.

+0

Tak zmiana ItemIDs okazało śmiertelne i zdałem sobie sprawę, że nie jest wiarygodnym mechanizmem skorelowanie przedmiotów, które zostały przeniesione do innego folder taki jak Skrzynka odbiorcza do Elementy usunięte. – nilobarp

Powiązane problemy