EWS中ItemView的最大大小是多少?

时间:2012-10-10 06:50:29

标签: c# exchange-server exchangewebservices ews-managed-api

ViewSize在构造函数级别指定。我找到了the documentation for the constructor,但没有说明最大尺寸有多大。

3 个答案:

答案 0 :(得分:9)

限制为2,147,483,647,因为它的数据类型是Int32, 我使用它并测试它不会返回任何错误,如果我们传递ItemView(2147483647);

它只是定义搜索项的页面大小,如果搜索项结果多于视图页面大小,则必须执行使用ItemView偏移的后续调用以返回其余结果。

参考 - http://msdn.microsoft.com/en-us/library/exchange/dd633693%28v=exchg.80%29.aspx       http://msdn.microsoft.com/en-us/library/system.int32.maxvalue.aspx

答案 1 :(得分:8)

您可以在ItemView构造函数中指定Int32值,但只返回数千个项目。您必须指定一个循环来获取剩余的项目。

        bool more = true;
        ItemView view = new ItemView(int.MaxValue, 0, OffsetBasePoint.Beginning);
        view.PropertySet = PropertySet.IdOnly;
        FindItemsResults<Item> findResults;
        List<EmailMessage> emails = new List<EmailMessage>();
        while (more)
        {
            findResults = service.FindItems(WellKnownFolderName.Inbox, view);
            foreach (var item in findResults.Items)
            {
                emails.Add((EmailMessage)item);
            }
            more = findResults.MoreAvailable;
            if (more)
            {
                view.Offset += 1000;
            }
        }

答案 2 :(得分:5)

Exchange中的默认策略将页面大小限制为1000个项目。将页面大小设置为大于此数字的值没有实际效果。应用程序还应考虑到EWSFindCountLimit限制参数值可能导致为发出并发请求的应用程序返回部分结果集这一事实。

http://msdn.microsoft.com/en-us/library/office/jj945066(v=exchg.150).aspx