是否有人知道使用EWS托管API绑定到单个EWS调用中的多个项目的任何方法,只给出相关项目的ItemIds?
以下是我的申请目前的工作方式:
麻烦的是,处理每个项目并不需要很长时间,因此我的代码在Item.Bind()中花费了大约一半的时间。它可能也不会让Exchange邮箱服务器非常高兴,不得不满足一连串微小的查询。在我看来,"批量生产将会更有效率。请求,一次加载大约100件物品的属性。
现在,我确定你要问 - 为什么不跳过数据库并在每次FindItems()调用后调用ExchangeService.LoadPropertiesForItems()?嗯......在它完成所有项目的处理之前,这个东西肯定会被停止。当它再次启动时(可能是几小时或几天后),它需要能够从停止的位置恢复。使用FindItems()的代码是非常重要的,以至于要弄清楚如何保存其状态以便以后恢复将是一场彻头彻尾的噩梦。
我找到Loading Properties for Multiple Items with One Call to Exchange Web Services,这解释了LoadPropertiesForItems()在幕后使用EWS GetItem调用。这确实接受了ItemIds列表,但该功能似乎没有通过托管API公开(LoadPropertiesForItems()需要一个已绑定的Item对象列表,而不仅仅是ItemIds。)
真的有几个问题: