如何使用ExchangeWebService获取日历(包含循环会议)-飞外

ExchangeServiceBinding _ExchangeBinding = new ExchangeServiceBinding(); _ExchangeBinding.Credentials = new NetworkCredential(username, password, domain); _ExchangeBinding.Url = Helper.GetWebconfig("exchangewebservice");

(2)定义请求的属性

请注意:在定义请求属性时,一定要定义CalendarViewType属性,默认的日历返回是不含循环日历的,

如果需要返回循环会议请求,就需要等译CalendarView

FindItemType findItemRequest = new FindItemType(); ItemResponseShapeType itemProperties = new ItemResponseShapeType();  itemProperties.BaseShape = DefaultShapeNamesType.AllProperties;  findItemRequest.ItemShape = itemProperties; //我们查找的是日历 DistinguishedFolderIdType[] folderIDs = { new DistinguishedFolderIdType { Id = DistinguishedFolderIdNameType.calendar } }; 
 findItemRequest.ParentFolderIds = folderIDs; //增加搜索的日历范围,红色代码要饭服务器返回循环会议 CalendarViewType cldview = new CalendarViewType();  cldview.StartDate = dt.AddDays(-2);  cldview.EndDate = dt.AddDays(2); findItemRequest.Item = cldview;  findItemRequest.Traversal = ItemQueryTraversalType.Shallow;

 FindItemResponseType findItemResponse = _ExchangeBinding.FindItem(findItemRequest);
ArrayOfResponseMessagesType responseMessages = findItemResponse.ResponseMessages; ResponseMessageType[] responseMessage = responseMessages.Items;
row["begintime"] = calItem.Start.AddHours(timezone); row["endtime"] = calItem.End.AddHours(timezone); row["location"] = calItem.Location; row["title"] = calItem.Subject; row["displayname"] = calItem.Organizer.Item.Name; if (row["endtime"].ToString() != "") table.Rows.Add(row); #endregion }