正如其他一些人之前讨论过这个问题(例如,Exchange Web 服务:为什么 ItemId 不是恒定的?),我想谈谈解决方案,我已经按照人们的建议将 Guid 标记为扩展属性,对我来说这个解决方案有点好(虽然我不知道如何使它与事件一起工作)但只要应用程序正常工作,一旦应用程序重新启动,项目的扩展属性就会消失,所以我现在的问题是“<em >如何在 EWS 项目上标记扩展属性并使其始终存在?” 这是更新日历项目(约会)的代码
public void SetGuidForAppointement(Appointment appointment)
{
appointment.SetExtendedProperty((ExtendedPropertyDefinition)_appointementIdPropertyDefinition, Guid.NewGuid().ToString());
appointment.Update(ConflictResolutionMode.AlwaysOverwrite, SendInvitationsOrCancellationsMode.SendToNone);
}
这些是上面需要的属性定义。
_appointementIdPropertyDefinition = new ExtendedPropertyDefinition(DefaultExtendedPropertySet.Appointment, "AppointmentID", MapiPropertyType.String);
_propertyDefinitionBases = new PropertyDefinitionBase[] { _appointementIdPropertyDefinition, ItemSchema.ParentFolderId, AppointmentSchema.Start, AppointmentSchema.End,
AppointmentSchema.LegacyFreeBusyStatus, AppointmentSchema.Organizer };
PropertySet = new PropertySet(BasePropertySet.FirstClassProperties, _propertyDefinitionBases);
因此,如果有人以前这样做过,他/她可以为我提供一个示例,即使应用程序退出,也可以将扩展属性标记在项目上。谢谢