EWS API 2.0读取日历信息-读取内容注意事项
采用模拟账号的方式读取日历信息,注意下日历的内容读取(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 BodyPropertySet 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 BodyPropertySet 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();//urlinfo.Url = item.WebClientReadFormQueryString;//加入如下,表示读取内容,否则会提示如下://HTML如果不为空if (item.Body != null){//html格式的内容MessageBody body = item.Body;//读取文本info.BodyHtml = body.Text;}////读取idif (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;}//returnreturn CalendarInfoList;}#endregion
EWS API 2.0读取日历信息-读取内容注意事项的更多相关文章
- (弃)解读Openstack Identity API v2.0
目前OpenStack社区提供了详尽的API文档,并配有丰富的说明和示例,关于Identity API v2查看这里, 关于Identity API v3请查看这里. 尽管现在官方已经不建议OpenS ...
- HTML5的File API读取文件信息
html结构: <div id="fileImage"></div> <input type="file" value=" ...
- ASP.NET Core的配置(1):读取配置信息
提到"配置"二字,我想绝大部分.NET开发人员脑海中会立马浮现出两个特殊文件的身影,那就是我们再熟悉不过的app.config和web.config,多年以来我们已经习惯了将结构化 ...
- JPEG图片扩展信息读取与修改
extends:http://www.2cto.com/kf/201405/303813.html 读写均是键值对的方式,需要注意的是值的类型需要严格按照api定义格式. 支持读写节点为: 1.TAG ...
- JPEG图片扩展信息读取与改动
近日项目中须要用到往jpg图片中写入信息(非水印),经调研发现Android中已经封装了读写jpg图片扩展信息的api(ExifInterface). 相应api地址:http://developer ...
- JPEG图像扩展信息读取和修改
最近,项目需要使用jpg图像信息被写入(非水印),经过研究发现,Android已封装的读者jpg图片扩展信息api(ExifInterface). 通讯api住址:http://developer.a ...
- Mp3文件标签信息读取和写入(Kotlin)
原文:Mp3文件标签信息读取和写入(Kotlin) - Stars-One的杂货小窝 最近准备抽空完善了自己的星之小说下载器(JavaFx应用 ),发现下载下来的mp3文件没有对应的标签 也是了解可以 ...
- 解惑:NFC手机如何轻松读取银行卡信息?
自支付宝钱包8.0推出了NFC新功能,只要将支持NFC功能的手机靠近公交卡.银行卡等带有芯片的IC卡上,可迅速读取卡内余额.卡的信息,还可以给卡进行充值,非常贴心实用. 但是很多网友表示担忧,要是别人 ...
- ios读取通讯录信息
ios读取通讯录信息 (2012-05-22 14:07:11) 标签: ios读取通讯录 it iphone如许app读取通讯录信息,读取通讯录信息时需要加载AddressBookUI 和Add ...
随机推荐
- Unity3D Player角色移动控制脚本
1. 简介 在Unity3D中,有多种方式可以改变物体的坐标,实现移动的目的,其本质是每帧修改物体的position.之前写过类似的文章,这次增加了平时常用API的脚本,每个脚本均手打测试可用. 2. ...
- js IndexedDB:浏览器端数据库的demo实例
IndexedDB具有以下特点. (1)键值对储存. IndexedDB内部采用对象仓库(object store)存放数据.所有类型的数据都可以直接存入,包括JavaScript对象.在对象仓库中, ...
- vs2010统计项目代码总行数
按CTRL+SHIFT+F (Find in files),勾上支持正则表达式,然后输入搜索内容: ^:b*[^:b#/]+.*$ 找到最后一行就是结果
- 【转载】ASP.NET MVC Web API 的路由选择
此文章描述了ASP.NET Web API如何将Http请求路由到controller. 路由表 在ASP.NET Web API中,controller是用来处理HTTP请求的一个类.这个类中用于处 ...
- .Net语言 APP开发平台——Smobiler学习日志:Poplist控件在APP中的应用场景以及代码
最前面的话:Smobiler是一个在VS环境中使用.Net语言来开发APP的开发平台,也许比Xamarin更方便 一.目标样式 我们要实现上图中的效果,需要如下的操作: 1.从工具栏上的”Smobil ...
- EF 中事务的书写
在EF 中怎么使用事务? 这个问题纠结了我好久,直到有人跟我一起讨论,我和同事一起讨论查资料. 查的好多资料都是使用 using (TransactionScope scope = new Trans ...
- ASP.NET MVC 网站开发总结(六)——简谈Json的序列化与反序列化
首先,先简单的谈一下什么是序列化与反序列化,序列化 (Serialization)将对象的状态信息转换为可以存储或传输的形式的过程.在序列化期间,对象将其当前状态写入到临时或持久性存储区.以后,可以通 ...
- 【从API学英语】-DriverManager
原文: The basic service for managing a set of JDBC drivers. NOTE: The DataSource interface, new in the ...
- SSH框架执行自己定义的SQL语句
直接上代码 String hsql = "delete XTable x where x.Userid= ?"; Query query = this.getSession().c ...
- 纯灌水Linus主义
卖桃君重新整理了Linus的相关故事,在此摘选对自己有触动的内容. 关于生命的意义,李纳斯的解释是,有三件事具有生命的意义.它们是你生活当中所有事情的动机.第一是生存,第二是社会秩序,第三是娱乐.生活 ...