展望得到FreeBusy信息很慢

问题描述 投票:0回答:2

我的代码是微软的Outlook插件,用于创建一队60+人没有日历。该公司使用微软Exchange。

我检索与此代码的空闲/忙碌状态:

var namespace = ThisAddIn.thisOutlookApp?.GetNamespace( "MAPI" );
var recp = namespace.CreateRecipient( personName );
var freeBusy = recp.FreeBusy( startDate, MinPerChar: 60, CompleteFormat: true );

虽然这个工作文件,一个呼叫FreeBusy()大约需要300毫秒。对于60人,三个月的时间跨度,这意味着我的代码需要将近一分钟。

我也试过这样的选择:

recp.Resolve();
var exu = recp.AddressEntry.GetExchangeUser();
var freeBusy = exu.GetFReeBusy(...)

但没有什么区别。在VBA相同的代码显示了相同的性能。

是他们的一招,加快这一通话,或者是有另一种方式来获得忙/闲信息,例如通过访问其他人的日历或通过交谈,MS Exchange服务器本身?

c# outlook office-interop
2个回答
1
投票

使用GetUserAvailability EWS操作 - 它允许请求的F / B在一个单一的通话为多个用户的信息。


0
投票

我发现了一个很好的解决自己:我没有使用Outlook互操作的API,但是使用EWS托管API调用到Exchange服务器本身。

有一位优秀的集101 sample projects的。 (这真是101样本!)和非常好的step-by-step tutorial入门与EWS托管API。

“交易所2013获取用户的状态设置编程”是,我使用的样本。

不过,我渴望听到的,因此用户可选择的解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.