采用模拟账号的方式读取日历信息,注意下日历的内容读取(Body)读取。代码如下:(采用 EWS API 2.0版本)

1、读取内容前必须设置如下属性:否则会提示:You must load or assign this property before you can read its value  Body

如下图:

 //*************************以为设置为读取内容,否则会提示:You must load or assign this property before you can read its value  Body
    PropertySet detailedPropertySet = new PropertySet(BasePropertySet.FirstClassProperties, AppointmentSchema.Recurrence);
    service.LoadPropertiesForItems(from Item item in findResults select item, detailedPropertySet);
 //******************************

设置后正常。

2、如果想读取内容的纯文本,目前Exchange server2010内的版本支持读取带HTML的内容。调用代码如下:

 //如果文本不为空
                        if (item.TextBody != null)
                        {
                            TextBody txtBody = item.TextBody;
                            //
                            info.BodyText = txtBody.Text;
                        }

 

调用后出现如下错误:

所以只能用正则表达式获取文本内容。

 

附带正确代码:

 #region//读入日历信息
        /// <summary>
        /// 读入日历信息
        /// </summary>
        /// <param name="config">配置参数</param>
        /// <param name="searchdtStart">开始时间</param>
        /// <param name="searchdtEnd">结束时间</param>
        /// <returns>返回列表</returns>
        private static List<CalendarInfo> GetCalendarList(EwsConfig config,DateTime searchdtStart,DateTime searchdtEnd)
        {
            //返回值
            List<CalendarInfo> CalendarInfoList = new List<CalendarInfo>();
            try
            {
                //读取未读邮件
                CalendarFolder calendarfolder = (CalendarFolder)Folder.Bind(service, WellKnownFolderName.Calendar);
                //如果不为空
                if (calendarfolder != null)
                {
                    //检索开始时间和结束时间
                    CalendarView calendarView = new CalendarView(searchdtStart, searchdtEnd);
                    //检索数据
                    FindItemsResults<Appointment> findResults = calendarfolder.FindAppointments(calendarView);
                    //*************************以为设置为读取内容,否则会提示:You must load or assign this property before you can read its value  Body
                    PropertySet detailedPropertySet = new PropertySet(BasePropertySet.FirstClassProperties, AppointmentSchema.Recurrence);
                    service.LoadPropertiesForItems(from Item item in findResults select item, detailedPropertySet);
                    //******************************
                    //返回
                    foreach (Appointment item in findResults.Items)
                    {

                        //实体类
                        CalendarInfo info = new CalendarInfo();
                        //主题
                        info.Identity = item.ICalUid;
                        //来源
                        info.Source = "Exchange2010";
                        //主题
                        info.Subject = item.Subject;
                        //地区
                        info.Location = item.Location;
                        //开始时间
                        info.StartTime = item.Start.ToLocalTime();
                        //结束时间
                        info.EndTime = item.End.ToLocalTime();
                        //url
                        info.Url = item.WebClientReadFormQueryString;
                        //加入如下,表示读取内容,否则会提示如下:

                        //HTML如果不为空
                        if (item.Body != null)
                        {
                            //html格式的内容
                            MessageBody body = item.Body;
                            //读取文本
                            info.BodyHtml = body.Text;

                        }
                            //
                        //读取id
                        if (item.Id != null)
                        {
                            info.ItemIdType = new CalendarInfo.CalendarItemIdType { Id = item.Id.UniqueId, ChangeKey = item.Id.ChangeKey };
                        }
                        //加入到集合中去
                        CalendarInfoList.Add(info);
                    }
                }
            }
            catch (Microsoft.Exchange.WebServices.Data.ServiceResponseException ex)
            {
                throw ex;
            }
            //return
            return CalendarInfoList;
        }
        #endregion

EWS API 2.0读取日历信息-读取内容注意事项的更多相关文章

  1. (弃)解读Openstack Identity API v2.0

    目前OpenStack社区提供了详尽的API文档,并配有丰富的说明和示例,关于Identity API v2查看这里, 关于Identity API v3请查看这里. 尽管现在官方已经不建议OpenS ...

  2. HTML5的File API读取文件信息

    html结构: <div id="fileImage"></div> <input type="file" value=" ...

  3. ASP.NET Core的配置(1):读取配置信息

    提到"配置"二字,我想绝大部分.NET开发人员脑海中会立马浮现出两个特殊文件的身影,那就是我们再熟悉不过的app.config和web.config,多年以来我们已经习惯了将结构化 ...

  4. JPEG图片扩展信息读取与修改

    extends:http://www.2cto.com/kf/201405/303813.html 读写均是键值对的方式,需要注意的是值的类型需要严格按照api定义格式. 支持读写节点为: 1.TAG ...

  5. JPEG图片扩展信息读取与改动

    近日项目中须要用到往jpg图片中写入信息(非水印),经调研发现Android中已经封装了读写jpg图片扩展信息的api(ExifInterface). 相应api地址:http://developer ...

  6. JPEG图像扩展信息读取和修改

    最近,项目需要使用jpg图像信息被写入(非水印),经过研究发现,Android已封装的读者jpg图片扩展信息api(ExifInterface). 通讯api住址:http://developer.a ...

  7. Mp3文件标签信息读取和写入(Kotlin)

    原文:Mp3文件标签信息读取和写入(Kotlin) - Stars-One的杂货小窝 最近准备抽空完善了自己的星之小说下载器(JavaFx应用 ),发现下载下来的mp3文件没有对应的标签 也是了解可以 ...

  8. 解惑:NFC手机如何轻松读取银行卡信息?

    自支付宝钱包8.0推出了NFC新功能,只要将支持NFC功能的手机靠近公交卡.银行卡等带有芯片的IC卡上,可迅速读取卡内余额.卡的信息,还可以给卡进行充值,非常贴心实用. 但是很多网友表示担忧,要是别人 ...

  9. ios读取通讯录信息

    ios读取通讯录信息 (2012-05-22 14:07:11) 标签: ios读取通讯录 it   iphone如许app读取通讯录信息,读取通讯录信息时需要加载AddressBookUI 和Add ...

随机推荐

  1. Nutch源码阅读进程2---Generate

    继之前仓促走完nutch的第一个流程Inject后,再次起航,Debug模式走起,进入第二个预热阶段Generate~~~   上期回顾:Inject主要是将爬取列表中的url转换为指定格式<T ...

  2. ElasticSearch 配置详解

    配置文件位于es根目录的config目录下面,有elasticsearch.yml和logging.yml两个配置,主配置文件是elasticsearch.yml,日志配置文件是logging.yml ...

  3. 【Swift学习】Swift编程之旅(三)

    元组(tuples) tuples是将多个单一的值组合为一个复合的值.它可以包含任何类型的值,而不需要都是相同类型. 一.元组的创建 1. let http404error = (,"NOT ...

  4. Qt实现小功能之列表无限加载

    概念介绍 无限加载与瀑布流的结合在Web前端开发中的效果非常新颖,对于网页内容具备较好的表现形式.无限加载并没有一次性将内容全部加载进来,而是通过监听滚动条事件来刷新内容的.当用户往下拖动滚动条或使用 ...

  5. C#基础01

    ASP.net基础详情 1:Momo就是跨平台的一种.net,借助其Momo可以让其.net网站跑到Lumin和安卓机上面. 2:开发的网站具有安全,速度快,容易配置. 3:互联网开发[网站]和管理系 ...

  6. 解决MVC EF Code First错误:Model compatibility cannot be checked because the EdmMetadata type was not included in the model.

    Model compatibility cannot be checked because the EdmMetadata type was not included in the model. En ...

  7. TFS 2012 在IE11和Chrome (Windows 8.1) 显示英文的解决方案

    1.如果使用IE11浏览TFS Web显示英文,请执行以下操作: 控制面板——>语言——>高级设置 将“替代Windows显示语言”改为“中文(中华人民共和国)”,同时勾选“Web语言”下 ...

  8. win8.1安装Team Function Server 2013

    1.系统是Win8.1企业版64位 2.Visual Studio 2013 3.数据库是Sql Server2012 (这里注意需要升级到SP1否则安装可能失败下载地址http://www.micr ...

  9. 建立MySQL的ODBC

    1. 进入控制面板->管理工具->数据源(ODBC): 2. 点击添加,数据源驱动程序选择MySQL ODBC 5.1 Driver: 3. 弹出MySQL Connecotor/ODBC ...

  10. 反编译APK文件

    有时源代码丢失了,这时如果有apk文件的话,是可以对apk文件反编译得到源文件的,本文介绍一下简单的反编译apk文件的过程. 1.工具 反编译apk需要的工具有两个:apk2java和apktool, ...