gpt4 book ai didi

c# - EWS Managed API : Can I load properties for multiple items with one EWS call, 仅给出项目 ID?

转载 作者:行者123 更新时间:2023-11-30 22:01:16 26 4
gpt4 key购买 nike

有没有人知道使用 EWS 托管 API 在单个 EWS 调用中绑定(bind)到多个项目的任何方法,只给出相关项目的 ItemIds?

这是我的应用程序目前的工作方式:

  • 反复调用 ExchangeService.FindItems() 以生成可能非常大的项目列表(数十万或更多)。
  • 将 ItemId 存储在数据库中(作为字符串)。
  • 依次从数据库中读取每个 ItemId,使用 Item.Bind() 绑定(bind)到项目并对其进行处理(处理细节并不重要)。

问题是,处理每个项目并不需要很长时间,所以我的代码将大约一半的时间花在了 Item.Bind() 上。它可能也不会让 Exchange 邮箱服务器非常高兴,因为它必须满足持续不断的微小查询。在我看来,“批量”请求、一次加载大约 100 个项目的属性会更有效率。

现在,我确定您在问 - 为什么不直接跳过数据库并在每次 FindItems() 调用后调用 ExchangeService.LoadPropertiesForItems()?嗯……这东西在处理完所有元素之前,肯定有可能会停止。当它再次启动时(可能几小时或几天后),它需要能够从中断的地方恢复。使用 FindItems() 的代码非常重要,弄清楚如何保存其状态以供以后恢复将是一场彻头彻尾的噩梦。

我找到了 Loading Properties for Multiple Items with One Call to Exchange Web Services ,这说明 LoadPropertiesForItems() 正在幕后使用 EWS GetItem 调用。它确实接受 ItemId 列表,但该功能似乎并未通过托管 API 公开(LoadPropertiesForItems() 需要已绑定(bind) Item 对象的列表,而不仅仅是 ItemId)。

真的有几个问题:

  1. 我错过了什么吗? EWS Managed API 中的某处实际上是否有一种方法可以满足我的需求?
  2. 如果没有,一旦我有一个托管 API session ,有没有办法“搭载”原始 EWS SOAP 调用,而不必再次通过所有身份验证等,这是一种困难的方法?
  3. 我是不是做错了什么? :-)

最佳答案

ExchangeService.BindToItems正是您要找的。

关于c# - EWS Managed API : Can I load properties for multiple items with one EWS call, 仅给出项目 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27848170/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com