好的我正在尝试使用以下代码从C#连接到Outlook日历:
using Outlook = Microsoft.Office.Interop.Outlook;
Outlook.Application msOutlook = new Outlook.Application();
Outlook.NameSpace ns = msOutlook.GetNamespace("MAPI");
Outlook.MAPIFolder folder = ns.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderCalendar);
foreach (Outlook.MAPIFolder subfolder in folder.Folders)
{
MessageBox.Show(subfolder.Name);
}
然而,尽管有两个日历,上面的代码片段看不到任何内容!
我想我可能会对下面的代码感到更幸运:
Outlook.MAPIFolder folder = ns.GetFolderFromID("CalendarName", Type.Missing);
但是这引发了以下异常:
无法打开该项目。再试一次。
我猜日历ID不是它的名字。
我做错了什么?
另外,我正在使用带有.Net 4和Outlook 2010的C#4。
答案 0 :(得分:3)
这两个日历都在MAPI命名空间中吗?如果您遍历名称空间以查看其他名称是否有日历,该怎么办?
Outlook.Application msOutlook = new Outlook.Application();
Outlook.NameSpace session = msOutlook.Session;
Outlook.Stores stores = session.Stores;
foreach (Outlook.Store store in stores)
{
Outlook.MAPIFolder folder = store.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderCalendar);
MessageBox.Show(folder.Name);
}