Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/322.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#_Interop_Outlook - Fatal编程技术网

使用互操作从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

好的,我正在尝试使用以下代码从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不是它的名字

我做错了什么


另外,我将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);
}