Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Outlook不返回约会重复_C#_Outlook_Vsto_Outlook 2007_Appointment - Fatal编程技术网

C# Outlook不返回约会重复

C# Outlook不返回约会重复,c#,outlook,vsto,outlook-2007,appointment,C#,Outlook,Vsto,Outlook 2007,Appointment,我正在玩VSTO for Outlook 2007。 当访问日历中的约会时,我希望看到所有的重复事件,而不仅仅是序列主项 我的代码如下 var calendarFolder = Globals.TestAddin.Application.GetNamespace("MAPI").GetDefaultFolder(OlDefaultFolders.olFolderCalendar); var outlookCalendarItems = calendarFolder.Items; outlookC

我正在玩VSTO for Outlook 2007。
当访问日历中的约会时,我希望看到所有的重复事件,而不仅仅是序列主项

我的代码如下

var calendarFolder = Globals.TestAddin.Application.GetNamespace("MAPI").GetDefaultFolder(OlDefaultFolders.olFolderCalendar);
var outlookCalendarItems = calendarFolder.Items;
outlookCalendarItems.IncludeRecurrences = includeRecurring;

var appointmentItems = outlookCalendarItems.Cast<AppointmentItem>();
foreach ( var appointmentItem in appointmentItems )
{
  var item = appointmentItem;
  this.LogBox.AppendText(item.Subject);
}
var calendarFolder=Globals.TestAddin.Application.GetNamespace(“MAPI”).GetDefaultFolder(OlDefaultFolders.olFolderCalendar);
var-outlookCalendarItems=calendarFolder.Items;
outlookCalendarItems.IncludeCurrences=IncludeCurrences;
var appointmentItems=outlookCalendarItems.Cast();
foreach(任命项目中的var任命项目)
{
var项目=任命项目;
此.LogBox.AppendText(item.Subject);
}
它显示所有正常项目、所有系列主项目,但不显示计算的系列约会。
它显示了我母亲1949年10月的生日,这是一个重复出现的项目,但她在1950年、1951年的所有生日都没有。。。等等

我做错了什么

谢谢你的建议

Sascha

添加了一行代码:

outlookCalendarItems.Sort("[Start]");

当包含日期之间没有“查找”的复发时,此代码有可能成为一个永恒的循环

这是因为它将为可以找到的每个事件创建一个“appointmentItem”。如果存在未设置定期结束日期的定期日历项目,则此循环将继续为每次事件(永远)创建“appointmentItem”

要解决此问题,您需要限制找到的结果,请参见下面的“如何限制结果”:

Set currentAppointment=MyAppoints.Find(“[Start]>=””)&_

tdystart&“和[Start]Outlook编程似乎不是很受欢迎-13天内只有16个视图:-(
Set currentAppointment = myAppointments.Find("[Start] >= """ & _
        tdystart & """ and [Start] <= """ & tdyend & """")