使用Microsoft Graph创建无提醒日历事件时抛出异常的原因排查
Microsoft Graph SDK v5中ReminderMinutesBeforeStart设为null引发ODataError的问题
我在使用Microsoft Graph SDK v5创建日历事件时遇到异常,以下代码仅在bSetReminder为false时触发Microsoft.Graph.Models.ODataErrors.ODataError,为true时可正常执行:
// Add the event Event createdEvent = await _graphClient.Me.Calendars[oSettings.CalendarID].Events.PostAsync(new Event { Subject = oEvent.GetSubject(), Body = body, Start = startTime, End = endTime, IsAllDay = oEvent.IsAllDayEvent(), IsReminderOn = bSetReminder, ReminderMinutesBeforeStart = bSetReminder ? iReminderMinutes : (int?)null, Location = location, SingleValueExtendedProperties = extendedProperties, Sensitivity = oSettings.SetCalendarPrivate ? Sensitivity.Private : Sensitivity.Normal });
经排查,问题出在这行代码:
ReminderMinutesBeforeStart = bSetReminder ? iReminderMinutes : (int?)null
我尝试捕获异常但未获取到有效细节:
catch (Microsoft.Graph.Models.ODataErrors.ODataError ex) { SimpleLog.Log(ex); SimpleLog.Log(ex.InnerException); return false; }
将代码修改为以下形式后可正常运行:
ReminderMinutesBeforeStart = bSetReminder ? iReminderMinutes : 0
查看SDK v5中ReminderMinutesBeforeStart的属性定义仍为int?类型,无法理解为何传入(int?)null会引发异常,需要具体的原因解释。
内容的提问来源于stack exchange,提问作者Andrew Truckle
相关产品推荐
相关产品推荐

