使用互操作从C#连接到Outlook日历
好的,我正在尝试使用以下代码从C#连接到Outlook日历:使用互操作从C#连接到Outlook日历,c#,interop,outlook,C#,Interop,Outlook,好的,我正在尝试使用以下代码从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(Outloo
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不是它的名字
我做错了什么
另外,我将C#4与.Net 4和Outlook 2010一起使用。这两个日历都在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);
}
这两个日历都在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);
}