过滤Outlook AppointmentItem给出了奇怪的结果

时间:2013-03-21 09:11:16

标签: c# outlook outlook-2010

我尝试为[Start]使用某种范围:

var calendar = outlookApplication.GetNamespace("MAPI").GetDefaultFolder(OlDefaultFolders.olFolderCalendar);

if (calendar == null || calendar.Items == null)
{
   return null;
}

DateTime appointmentStart = new DateTime(2013, 03, 25, 10, 0 ,0);

string filter = string.Format("[Start] > '{0}' And [Start] < '{1}'", appointmentStart.AddMinutes(-1).ToString("g"), appointmentStart.AddMinutes(+1).ToString("g") );
var calendarItems = calendar.Items.Restrict(filter);

AppointemtItem Outlook 25.03.2013位于10:00:00 calendar.Items.Restrict(filter); {{1}}。所以我正在等待{{1}}

的结果得到这个AppointmentItem

但我成了2个AppointmenItems:

  • 正确的

  • 还有一个从2012年4月5日起 - 从4月5日 2012 (不是2013年)开始10:30:00和结束时间10:40:00

我无法理解05.04.2012 10:30:00 - 10:40:00与

有什么关系

过滤&gt; 25.03.2013 09:59和&lt; 25.03.2013 10:01?

2 个答案:

答案 0 :(得分:2)

使用Items.IncludeRecurrences属性 - MSDN: IncludeRecurrences Property

答案 1 :(得分:0)

2012年4月5日的AppointmentItem是经常性的。

我不知道为什么它会在calendar.Items.Restrict(filter)之后显示,但我的解决方案是检查IsRecurring属性。