2013-05-14 84 views
0

我想从EWS-Items中读取所有“自定义属性”。我确实有属性的名称(例如“duration”或“distance”),但我没有创建它们(我的客户做过)。使用EWS读取Exchange Server上的所有自定义属性

我想我将不得不使用了“项”级的“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()没有特定的属性集。这会减慢过程(我需要为邮箱中的每个项目调用此项)?

我基本上想用这样的条款进行迭代: 如果(extendedProperty.PropertyDefinition.Name ==“持续时间”)

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

感谢

马丁

回答

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 

    } 
+0

谢谢!我会尝试.. – MartinHappyCoding 2013-05-14 13:15:59

相关问题