0

我想阅读 EWS-Items 中的所有“自定义属性”。我确实有属性的名称(例如“持续时间”或“距离”),但我没有创建它们(我的客户做了)。

我想我将不得不使用“Item”类的“ExtendedProperties”。但是当我将 Item.Bind() 与 Property-set 一起使用时,我需要知道我没有的 GUID!微软说(http://msdn.microsoft.com/en-us/library/exchange/dd633697%28v=exchg.80%29.aspx):“从扩展属性时使用的 GUID 创建一个 GUID 标识符创建的。”

我没有这些 GUID,因为我没有创建属性。我想唯一的机会是在没有特定属性集的情况下使用 Item.Bind() 。这会减慢这个过程吗(我需要为邮箱中的每个项目调用它)?

我基本上想用这样的子句进行迭代: if (extendedProperty.PropertyDefinition.Name == "duration")

任何想法如何做到这一点?

谢谢

马丁

4

1 回答 1

1

尝试使用 PropertyDefinition 和属性类型 (MapiPropertyType) 按名称恢复它:

//搜索“持续时间”属性

 Microsoft.Exchange.WebServices.Data.ExtendedPropertyDefinition extendedPropertyDefinition =
    new Microsoft.Exchange.WebServices.Data.ExtendedPropertyDefinition
        (DefaultExtendedPropertySet.Common, "duration", MapiPropertyType.String);    

    EmailMessage msgMod = EmailMessage.Bind(service, msgComplete.Id, 
                          new PropertySet(extendedPropertyDefinition));

    ExtendedPropertyCollection colProp = msgMod.ExtendedProperties;
    foreach (ExtendedProperty prop in colProp)
    {

       //Iterate properties

    }
于 2013-05-14T10:12:18.640 回答