2015-05-20 59 views
1

我已经通过保存成功的Outlook应用程序中的JavaScript在Outlook中的约会中创建了自定义属性。我已检查此约会的MAPI属性,我可以将该属性看作JSON字典。通过EWS访问公共字符串MAPI属性

存储的属性的MFCMAPI显示:

我现在试图通过EWS在C#应用程序来获取这一点。为了排除故障,我也试图找回另一个属性,以33336.

ExtendedPropertyDefinition epd = new ExtendedPropertyDefinition(DefaultExtendedPropertySet.PublicStrings, "cecp-propertyNames", MapiPropertyType.String);  
ExtendedPropertyDefinition epd2 = new ExtendedPropertyDefinition(DefaultExtendedPropertySet.Appointment, 33336, MapiPropertyType.String); 
//Create our sync window. This is the period of appointments it will capture and sync 
CalendarView cv = new CalendarView(START_DATE_SYNC, END_DATE_SYNC); 
cv.PropertySet = new PropertySet(BasePropertySet.FirstClassProperties, epd, epd2); 
FolderId calendarFolderId = new FolderId(WellKnownFolderName.Calendar, room.Address); 
FindItemsResults<Appointment> fappts = service.FindAppointments(calendarFolderId, cv); 

交易所的ID返回合适的约会项目,但访问扩展属性,只与33336的ID属性时(测试一个)返回。任何时候我尝试和检索PS_PUBLIC_STRINGS项目,都不会回来。

+0

如果您使用OutlookSpy查看Outlook中的项目(单击IMessage),您是否看到在该特定项目上设置的属性? –

+0

是的,我可以在预约项目的IMessage中看到它及其值。 – plusheen

+0

这可能是相关的,虽然它在另一个方向* *:Outlook无法看到使用Exchange创建的扩展属性http://stackoverflow.com/questions/6013173/creating-extended-property-using-ews-and-访问它从 - Outlook的插件。也许你应该尝试使用PropertyAccessor? –

回答

0

您的imgur链接令人沮丧地裁剪。我看不到名为property guid的列,以检查它是否与您在EWS代码中尝试的内容匹配。所以我只能猜测,我认为你有错误的属性集。

您是否尝试过使用EWS编辑器查看该项目以查看它是否找到您正在寻找的属性?如果确实如此,您可以阅读构建EWS代码所需的详细信息。