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

C# 如何以编程方式将任务添加到特定Outlook存储区

C# 如何以编程方式将任务添加到特定Outlook存储区,c#,outlook,C#,Outlook,我有一段代码,可以获得特定商店的任务 Outlook.Application app = new Outlook.Application(); Outlook.NameSpace ns = app.Session; Outlook.Stores stores = ns.Stores; try { foreach (Outlook.Store store in stores) {

我有一段代码,可以获得特定商店的任务

Outlook.Application app = new Outlook.Application();
        Outlook.NameSpace ns = app.Session;
        Outlook.Stores stores = ns.Stores;

        try
        {
            foreach (Outlook.Store store in stores)
            {
                if (store.DisplayName == comboBoxAccounts.Text)
                {
                    Outlook.MAPIFolder tasksFolder = store.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderTasks);

                    foreach (Outlook.TaskItem task in tasksFolder.Items)
                    {
                        if (task.Subject == comboBoxContacts.Text)
                        {
                            comboBoxProperties.Items.Add(task.Body);
                        }
                    }

                    if (tasksFolder != null)
                        Marshal.ReleaseComObject(tasksFolder);
                }
            }
        }
        catch (System.Runtime.InteropServices.COMException ex)
        {
            statusLabel.Text = ex.ToString();
        }
        finally
        {
            if (ns != null)
                Marshal.ReleaseComObject(ns);
        }
我正在尝试将等效项组合在一起,以便将任务添加到特定的存储中。下面的代码将任务添加到Outlook的主帐户,但我想使用其他帐户

Outlook.Application app = new Outlook.Application();
            Outlook.NameSpace ns = app.Session;

            try
            {
                Outlook.TaskItem task = app.CreateItem(Outlook.OlItemType.olTaskItem);
                task.Subject = strContact;
                task.StartDate = DateTime.Now;
                task.DueDate = DateTime.Now.AddDays(2);
                task.Status = Outlook.OlTaskStatus.olTaskNotStarted;
                task.Body = xDoc.ToString();
                task.Save();

            }
            finally
            {

            }
如何执行类似于store.CreateItem()的操作

谢谢

更新: 解决方案

Outlook.Application app = new Outlook.Application();
            Outlook.NameSpace ns = app.Session;
            Outlook.Stores stores = ns.Stores;

            try
            {
                foreach (Outlook.Store store in stores)
                {
                    if (store.DisplayName == strAccount)
                    {
                        Outlook.MAPIFolder tasksFolder = store.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderTasks);
                        Outlook.TaskItem task = (Outlook.TaskItem)tasksFolder.Items.Add(Outlook.OlItemType.olTaskItem);

                        task.Subject = strContact;
                        task.StartDate = DateTime.Now;
                        task.DueDate = DateTime.Now.AddDays(2);
                        task.Status = Outlook.OlTaskStatus.olTaskNotStarted;
                        task.Body = xDoc.ToString();

                        task.Save();
                    }
                }
            }
            finally
            {

            }

不要使用
Application.CreateItem
。从
应用程序.Session.Stores
集合中检索存储,调用
存储.GetDefaultFolder(olFolderTasks)
,使用
MAPIFolder.Items.add将项目添加到该文件夹中。谢谢你,德米特里D