我目前正在使用Outlook 2010上的EWS。我正在尝试根据类别字段查看用户的联系人。我基本上想要返回其类别字段包含特定子字符串的每个联系人。以下是一个例子:
ExchangeService service = new ExchangeService
{
Credentials = new WebCredentials(user, password, domain),
Url = new Uri(exchangeUrl),
};
string searchString = "abc";
SearchFilter filter = new SearchFilter.ContainsSubstring(ItemSchema.Categories, searchString);
ItemView view = new ItemView(200);
Mailbox mailbox = new Mailbox("blah@blah.com");
FolderId folderId = new FolderId(WellKnownFolderName.Contacts, mailbox);
FindItemsResults<Item> results = service.FindItems(folderId, filter, view);
这当然失败了,因为类别字段现在令人烦恼地是StringList
而不是普通字符串。我们所有的用户联系人只有一个与之关联的类别。有没有办法只通过第一个类别 上的比较运行才能使SearchFilter
工作?
请注意:由于我无法控制的原因,我cannot use AQS strings。他们根本不是一个选择。我必须使用SearchFilter
个对象(或其他一些机制来过滤结果)。
答案 0 :(得分:1)
从我看到的情况来看,您必须使用AQS或Exact Match。如果你也不能使用它们,那么using ItemView
and paging through all messages category properties自己总是采用强制方法来实现包含实现。