Ссылка на Inspector.CurrentItem заставляет напоминания продолжать возвращаться - PullRequest
0 голосов
/ 21 мая 2019

Я создаю простую надстройку Outlook для работы с напоминаниями.Когда я создаю собрание, которое включает комнату, и я ссылаюсь на Inspector.CurrentItem в моем новом обработчике событий инспектора, создается напоминание, которое просто возвращается после увольнения.

Я использую Outlook 2013 и Visual Studio 2017Если я не включу комнату в приглашение на собрание, напоминание будет отклонено должным образом.Я свел проблему к следующему коду.(Если я закомментирую ссылку на Inspector.CurrentItem, напоминание будет отклонено должным образом.)

public partial class ThisAddIn
{
    private Outlook.Inspectors inspectors { get; set; }
    private void ThisAddIn_Startup(object sender, System.EventArgs e)
    {
        inspectors = Application.Inspectors;
        inspectors.NewInspector +=
        new Outlook.InspectorsEvents_NewInspectorEventHandler(Inspectors_NewInspector);
    }

    void Inspectors_NewInspector(Outlook.Inspector Inspector)
    {
        var currentItem = Inspector.CurrentItem; //Just referring to Inspector.CurrentItem causes a persistent reminder that won't go away.
    }
    ...
}

Из-за административных ограничений я не смог попробовать возможные исправления, связанные с очисткой напоминаний Outlook на моем компьютере.

1 Ответ

0 голосов
/ 12 июля 2019

Оказалось, что это проблема сбора мусора, как описано в этой статье .(Сборка мусора COM-объектов Outlook не является автоматической и должна выполняться вручную.)

Это было решено добавлением:

using System.Runtime.InteropServices;
...
Marshal.ReleaseComObject(currentItem);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...