2013-12-13 9 views
11

Ich versuche, Elemente aus gelöschten Objekte zu finden Ordner die Elemente eindeutige IDEWS Managed API Produkte mit ItemID finden

gegeben
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); 

Dieser Code eine Ausnahme gibt zu sagen:

Validation failed. 
Parameter name: searchFilter 

den gleichen Code funktioniert wenn ich nach einer Nachricht mit Betreff suche.

Antwort

24

Sie brauchen nicht FindItems zu verwenden, wenn Sie bereits die ItemId wissen

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

Ich liebe dich Mann! Dies sollte als Antwort abhaken. – Elfayer

5

Sie können nicht nach einer ComplexProperty wie ItemId suchen. Ich gehe davon aus, dass Item.Bind aufgrund des verschobenen Elements nicht funktioniert, was die ItemId geändert hat?

Wenn dies der Fall ist, müssen Sie einen SearchFilter auf einer anderen Eigenschaft verwenden. Wenn dies Elemente sind, die Sie über EWS erstellt haben, können Sie jedem eine eindeutige erweiterte Eigenschaft hinzufügen und diese verwenden, wenn Sie nach einer suchen müssen.

+0

Ja die Änderung der ItemIDs Verhängnis und ich erkannte, dass es kein zuverlässiger Mechanismus ist es, Elemente zum Korrelieren, die zu einem anderen verschoben wurden Ordner wie Posteingang zu gelöschten Artikeln. – nilobarp

Verwandte Themen