我正在开发一个 Outlook 加载项,最近为了熟悉而改用 C#(我本质上是一个 Java 人)。此时,我只是尝试遍历邮件文件夹并将每条消息的主题打印到控制台,主要是为了确保到目前为止一切正常。但是,每当我运行它时,都会收到以下错误:
无法完成操作。一个或多个参数值无效。
异常文本:
System.ArgumentException:无法完成操作。一个或多个参数值无效。在 Microsoft.Office.Interop.Outlook.NameSpaceClass.GetFolderFromID(String EntryIDFolder, Object EntryIDStore) 在 OutlookAddIn2.ThisAddIn.ThisAddIn_Startup(Object sender, EventArgs e) 在 Microsoft.Office.Tools.AddInImpl.OnStartup() 在 Microsoft.Office.Tools .AddInImpl.AddInExtensionImpl.Microsoft.Office.Tools.EntryPoint.OnStartup() 在 Microsoft.Office.Tools.AddInBase.OnStartup() 在 OutlookAddIn2.ThisAddIn.FinishInitialization() 在 Microsoft.Office.Tools.AddInBase.Microsoft.Office.Tools .EntryPoint.FinishInitialization() 在 Microsoft.VisualStudio.Tools.Office.Runtime.DomainCreator.ExecuteCustomization.ExecutePhase(ExecutionPhases executionPhases) 在 Microsoft.VisualStudio.Tools.Office.Runtime。
加载程序集:
我对此感到有些困惑,因为这是微软在 MSDN 上推荐的让用户选择文件夹的精确方法。我已经包含了我的来源,如果您有任何想法,请告诉我。感谢您花时间阅读这篇文章,并愿意提供帮助!
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Linq;
using Outlook = Microsoft.Office.Interop.Outlook;
using Office = Microsoft.Office.Core;
namespace OutlookAddIn2
{
public partial class ThisAddIn
{
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
//Get application namespace and grab the original folder object
Outlook.Folder pickFolder = (Outlook.Folder)Application.Session.PickFolder();
//Outlook.Folder mrFolder = Application.Session.GetFolderFromID(pickFolder.EntryID, pickFolder.StoreID) as Outlook.Folder;
foreach (Outlook.MailItem oMailItem in pickFolder.Items)
{
Console.WriteLine(oMailItem.Subject);
}
}
private void ThisAddIn_Shutdown(object sender, System.EventArgs e)
{
}
#region VSTO generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InternalStartup()
{
this.Startup += new System.EventHandler(ThisAddIn_Startup);
this.Shutdown += new System.EventHandler(ThisAddIn_Shutdown);
}
#endregion
}
}