【问题标题】:Filter extended properties by contact id按联系人 ID 过滤扩展属性
【发布时间】:2012-05-16 06:55:26
【问题描述】:

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

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,但我找不到这样做的方法。

【问题讨论】:

    标签: c# exchangewebservices extended-properties


    【解决方案1】:

    要按Contact.Id 搜索,请使用ItemSchema.Id,如下所示...

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

    【讨论】:

    • 我试过了,但它会抛出一个 ArgumentException 并显示消息“验证失败。参数名称:searchFilter”
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2012-05-06
      • 1970-01-01
      • 1970-01-01
      • 2014-09-17
      • 2015-06-28
      • 1970-01-01
      • 1970-01-01
      • 2012-01-23
      相关资源
      最近更新 更多