在Exchange 2010中加载所有约会属性,包括扩展属性

时间:2013-08-08 19:19:36

标签: api calendar exchangewebservices exchange-server-2010

我正在尝试列出与给定日历约会相关联的所有属性,但我无法弄清楚是否有办法在不单独加载每个属性的情况下执行此操作。根据我在网上看到的一些代码,我知道我可以做类似以下的事情:

    /// <summary>
    /// List all the properties of an appointment
    /// </summary>
    public void listProps()
    {
        Folder myCalendar = Folder.Bind(service, WellKnownFolderName.Calendar);
        ItemView view = new ItemView(10);
        FindItemsResults<Item> findResults;

        do
        {
            findResults = myCalendar.FindItems(new SearchFilter.IsEqualTo(ItemSchema.ExtendedProperties, MyPropertySetId), view);
            service.LoadPropertiesForItems(findResults, new PropertySet(ItemSchema.Subject, ItemSchema.Body));

            foreach (Item item in findResults)
            {
                Console.WriteLine(item.Subject);
                Console.WriteLine(item.Body);
            }

            if (findResults.NextPageOffset.HasValue)
            {
                view.Offset = findResults.NextPageOffset.Value;
            }

        } while (findResults.MoreAvailable);
    }

然而,我在中间寻找的东西就像这个伪代码:

             service.LoadPropertiesForItems(findResults, new PropertySet(*.*));

             foreach (Item item in findResults)
             {
                 Console.WriteLine(property)
             }

这可能吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

不,这是不可能的。

您可以使用预定义的属性集,例如:PropertySet.FirstClassProperties来获取已知的属性集。

根本不支持以这种方式获取扩展属性。您必须明确指定要访问的扩展属性。例如:

ItemView view = new ItemView(10);

ExtendedPropertyDefinition extendedPropertyDefinition =
new ExtendedPropertyDefinition("Expiration Date", MapiPropertyType.String);

view.PropertySet = 
new PropertySet(BasePropertySet.FirstClassProperties, ItemSchema.Subject,extendedPropertyDefinition);