これは機能します:
public override bool GetAppointments(CalendarModel calendar, DateTime startDate, DateTime endDate) {
foreach (var googcal in _settings.Calendars.Where(googcal => googcal.Selected)) {
var eventQuery = new EventQuery {
Uri = new Uri(googcal.ProviderData),
// Passed in startDate/endDate are inclusive
StartTime = startDate.Date,
EndTime = endDate.Date.AddDays(1).AddMilliseconds(-1)
};
var eventFeed = Service.Query(eventQuery);
foreach (EventEntry appt in eventFeed.Entries) {
...
}
}
return true;
}
これはしません:
public override bool GetAppointments(CalendarModel calendar, DateTime startDate, DateTime endDate) {
foreach (var googcal in _settings.Calendars.Where(googcal => googcal.Selected)) {
var eventQuery = new EventQuery {
// Passed in startDate/endDate are inclusive
StartTime = startDate.Date,
EndTime = endDate.Date.AddDays(1).AddMilliseconds(-1),
Uri = new Uri(googcal.ProviderData)
};
var eventFeed = Service.Query(eventQuery);
foreach (EventEntry appt in eventFeed.Entries) {
...
}
}
return true;
}
最初のケースEvent.Query.StartTime
でEndTime
は、期待どおりに正しく設定されています。
2 番目のケースでは、初期化されていません ( 1/1/0001 12:00:00 AM
)。
唯一の違いは、オブジェクト初期化子のプロパティの順序です。
笑顔のために、私は次のように注文しました:
// Passed in startDate/endDate are inclusive
StartTime = startDate.Date,
Uri = new Uri(googcal.ProviderData),
EndTime = endDate.Date.AddDays(1).AddMilliseconds(-1)
確かにEndTime
正しいですが、初期化されていStartTime
ません。
これは私には意味がありません。どうしてですか?