2013-12-13 18 views
11

tôi đang cố gắng để tìm các mục từ thư mục Deleted Items cho các mục id duy nhấtEWS Managed API tìm mục có 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); 

Mã này trả về một ngoại lệ nói:

Validation failed. 
Parameter name: searchFilter 

Các tác phẩm cùng mã nếu tôi tìm kiếm thư có Chủ đề.

Trả lời

24

Bạn không cần phải sử dụng FindItems nếu bạn đã biết ItemID

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

Tôi yêu bạn! Điều này nên được đánh dấu là câu trả lời. – Elfayer

5

Bạn không thể tìm kiếm trên một ComplexProperty như ItemId. Tôi giả định rằng Item.Bind sẽ không hoạt động do mục đang được di chuyển, thay đổi ItemId?

Nếu đúng như vậy, bạn cần sử dụng SearchFilter trên thuộc tính khác. Nếu đây là những mục mà bạn đã tạo qua EWS, bạn có thể đính kèm một thuộc tính mở rộng duy nhất cho mỗi mục và sử dụng nó nếu bạn cần tìm kiếm.

+0

Có sự thay đổi của ItemIDs tỏ ra tử vong và tôi nhận ra rằng nó không phải là một cơ chế đáng tin cậy cho tương ứng vật phẩm đã được chuyển đến một số khác thư mục như Hộp thư đến các mục đã xóa. – nilobarp

Các vấn đề liên quan