java ews appointment_EWS API 2.0读取日历信息-读取内容注意事项

[from] http://www.cnblogs.com/love007/archive/2013/06/26/3156852.html

采用模拟账号的方式读取日历信息,注意下日历的内容读取(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//读入日历信息

///

///读入日历信息///

/// 配置参数

/// 开始时间

/// 结束时间

/// 返回列表

private static ListGetCalendarList(EwsConfig config,DateTime searchdtStart,DateTime searchdtEnd)

{//返回值

List CalendarInfoList = new List();try{//读取未读邮件

CalendarFolder calendarfolder =(CalendarFolder)Folder.Bind(service, WellKnownFolderName.Calendar);//如果不为空

if (calendarfolder != null)

{//检索开始时间和结束时间

CalendarView calendarView = newCalendarView(searchdtStart, searchdtEnd);//检索数据

FindItemsResults findResults =calendarfolder.FindAppointments(calendarView);//*************************以为设置为读取内容,否则会提示:You must load or assign this property before you can read its value Body

PropertySet detailedPropertySet = newPropertySet(BasePropertySet.FirstClassProperties, AppointmentSchema.Recurrence);

service.LoadPropertiesForItems(from Item item in findResults selectitem, detailedPropertySet);//******************************//返回

foreach (Appointment item infindResults.Items)

{//实体类

CalendarInfo info = newCalendarInfo();//主题

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)

{throwex;

}//return

returnCalendarInfoList;

}#endregion

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值