【发布时间】:2013-11-28 10:53:39
【问题描述】:
我正在 EWS 之上构建一个对象模型层,并在内部公开一个作为 EmailMessage 的对象,该对象具有我在启动时加载的几个标准属性,并允许用户在其上拥有不同的“视图”该对象(ViewAsEntity1、ViewAsEntity2)按需加载其他自定义属性(一些是扩展属性,一些是 Internet 标头)。
问题是我用一个 PropertySet(标准属性)调用 Item.Bind(),但是当用户请求 ViewAsEntity1 时,我用新的 PropertySet 调用 ServiceObject.Load(),这要么意味着我失去了原来的一组属性,或者我重新检索它们。
所以我的问题是:
1) 如果我调用 ServiceObject.Load 两次,在 PropertySet 中具有相同的属性,Exchange 是否真的发送相同的数据,或者它是否假设我已经缓存了它(如果它没有改变),并且没有再发一次?如果是这样,EWS 是否知道不会破坏 PropertyBag 中的现有数据?
2) 如果 #1 的答案是否定的,那么避免一次又一次昂贵的 EWS 调用的最佳方法是什么?我希望保持我的对象模型层薄,并简单地将属性调用引用到内部 EWS 项目对象中,但如果 #1 错误,我想我将不得不手动将所有数据复制到我的对象中。有没有更好的办法?
我正在使用 .NET 4.5、托管 EWS 2.0 和 Exchange 2010 SP1
【问题讨论】:
标签: exchange-server exchangewebservices ews-managed-api