2012-05-07 58 views
2

有了这个代码,我得到了扩展属性具有特定的显示名称联系人:过滤扩展属性

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不能过滤,但我不能找到一种方法来做到这一点。

回答

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); 
       } 
      } 
     } 
0

要通过Contact.Id使用搜索下面的ItemSchema.Id等给出...

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

我试过了,但是它引发了一个ArgumentException,消息“Validation failed。Parameter name:searchFilter” – Thiago