【发布时间】:2014-09-16 12:09:06
【问题描述】:
我正在使用 Exchange Web 服务托管 API 来搜索使用 FindItems 的邮件文件夹。我使用的代码是这样的:
var search = new SearchFilter.ContainsSubstring(
ItemSchema.Subject,
"subject I want");
ItemView searchView = new ItemView(9999);
searchView.PropertySet = new PropertySet(
BasePropertySet.IdOnly,
ItemSchema.Subject,
ItemSchema.DateTimeReceived,
EmailMessageSchema.From);
searchView.OrderBy.Add(
ItemSchema.DateTimeReceived,
SortDirection.Descending);
searchView.Traversal = ItemTraversal.Shallow;
var searchResults = _service.FindItems(
folderToSearch.Id,
search,
searchView);
搜索工作正常,我在searchView.PropertySet 中指定的属性确实会返回。问题是它没有返回From 的所有详细信息。
我迭代searchResults,并将项目转换为适当的EmailMessage 或PostItem,以访问From 属性,该属性返回一个EmailAddress 对象。在该对象上设置了Name 属性,但Address 为空。
如果我随后绑定该项目,例如:
var boundItem = Item.Bind(_service, message.Id);
var boundItemEmail = boundItem as EmailMessage;
那么boundItemEmail.From.Address是不为空,它返回发件人的电子邮件地址。
问题在于,与更快的FindItems 操作相比,绑定消息可能是一个相当耗时的过程。
【问题讨论】:
标签: exchangewebservices ews-managed-api