按联系人ID过滤扩展属性

时间:2012-05-07 19:07:52

标签: c# exchangewebservices extended-properties

使用此代码,我获得具有特定显示名称的联系人的扩展属性:

foreach(Contact c in contacts)
{
  // some code...
  view.PropertySet = new PropertySet(BasePropertySet.IdOnly, properties);
  filter = new SearchFilter.IsEqualTo(FolderSchema.DisplayName, c.DisplayName);
  items = service.FindItems(folderId, filter, view);
}

我想要过滤DisplayName而不是Contact.Id,但我找不到办法。

2 个答案:

答案 0 :(得分:0)

要按Contact.Id进行搜索,请使用下面给出的ItemSchema.Id ...

filter = new SearchFilter.IsEqualTo(ItemSchema.Id, c.Id);

答案 1 :(得分:0)

这就是我最后所做的,我找不到更好的解决方案。 我得到所有具有相同名称的联系人,并遍历它们以找到正确的联系人。

        foreach (Item item in items.Items)
        {
            foreach (var ext in item.ExtendedProperties)
            {
                // check if the extended property is from this contact
                if (c.Id.ChangeKey == item.Id.ChangeKey)
                {
                    extendedProperties.Add(ext);
                }
            }
        }