为什么EWS托管API SyncFolderItems不返回重复约会

|| 我正在使用EWS的托管API来将计划应用程序与交换日历同步。我的所有正常会议都可以,但没有任何重复/定期约会。 我的代码如下:
itemChangeCollection = _service.SyncFolderItems(
                            new FolderId(WellKnownFolderName.Calendar,
                                         new Mailbox(Email)),
                            propertySet,
                            null,
                            Settings.Default.ExchangeSyncFetchCount,
                            SyncFolderItemsScope.NormalItems,
                            syncState);
我还需要更改以查看定期约会吗?     
已邀请:
定期约会的实例不是商店中的“真实”物品。从某种意义上说,它们是虚拟的,只要您使用日历视图和时间范围执行搜索,就可以对它们进行计算。 查找定期约会的唯一方法是使用FindItems方法。     
SyncFolderItems
仅返回必要信息以重建循环序列,而不会扩展单个事件。如果需要扩展出现次数,则需要使用
FindItems
方法。 但是,即使假设您可以自己扩大复发率,仅
SyncFolderItems
也不能提供所有必要的信息。
SyncFolderItems
将返回具有
Single
RecurringMaster
AppointmentType的事件的列表。一个RecurringMaster事件包含
ModifiedOccurrences
DeletedOccurrences
属性。不幸的是,“ 7”中的项目仅包含ItemId,而不包含项目本身。似乎有必要单独解决所有异常问题,以获取已修改事件的字段。从文档中:   ModifiedOccurrences集合中的每个OccurrenceInfo对象   包含四个属性:End,ItemId,OriginalStart和Start。至   访问例外项上的其他属性,您必须绑定到   通过使用OccurrenceInfo.ItemId的项目。
foreach (OccurrenceInfo item in recurringMasterItem.ModifiedOccurrences)
{
   Appointment modifiedItem = Appointment.Bind(service, item.ItemId);
   Console.WriteLine(\"Subject: \" + modifiedItem.Subject);
}
换句话说,使用您从
SyncFolderItem
获得的数据,您可以扩展重复性,包括时间异常和已删除的事件,但是您必须通过额外的
.Bind()
调用来解决其他字段(例如,摘要,正文,位置等)的异常。     
SyncFolderItems
将为您提供重复出现的主项目,但不会将它们扩展为出现的项目。循环主机保留所有项目的通用属性,循环模式以及例外和删除列表。这是将它们扩展为出现所需要的全部信息。尽管您应该调用“ 14”来根据事件索引为重复发生的主记录中的单个事件绑定属性。不利的一面是每次发生EWS呼叫。     

要回复问题请先登录注册