«Объект не поддерживает этот метод» - ошибка при попытке обновить тему письма (MailItem.Subject) - PullRequest
0 голосов
/ 02 июля 2019

Я поддерживаю надстройку C # Outlook. Он много лет работает в Outlook 2003. Сегодня пользователь сообщил об ошибке, которую я никогда раньше не видел. Для двух писем (от одного и того же отправителя) она получает это сообщение об ошибке при попытке их обработать:

Объект не поддерживает этот метод. в Microsoft.Office.Interop.Outlook._MailItem.set_Subject (String Subject)

Исключение возникает, когда надстройка пытается обновить тему:

private static void ForceReconnectToExchangeServer(Outlook.MailItem mi)
{
   mi.Subject = mi.Subject + "";       // <-- HERE
   mi.Save();
}

Я вижу второе сообщение об ошибке (всплывающая подсказка в конце строки в Visual Studio):

errorCS0433: тип «MailItem» существует в обоих 'Microsoft.Office.Tools.Outlook.Implementation, Version = 10.0.0.0, Культура = нейтральная, PublicKeyToken = b03f5f7f11d50a3a 'и 'Microsoft.Office.Tools.Outlook, версия = 10.0.0.0, культура = нейтральная (... не может видеть остальную часть строки ....)

Есть идеи, почему это происходит? Большое спасибо!

Примечание 1: эта надстройка использует последнюю версию Redemption.

Примечание 2: я получаю ту же ошибку, когда пересылаю сообщение себе (обрабатываю его), даже если я удаляю все в сообщении. Однако, если я изменю формат почты на Обычный текст, ошибки не будет.

Примечание 3: эта проблема может быть связана с с этой , но никто не ответил на нее.

Ответы [ 2 ]

1 голос
/ 14 июля 2019

Пространство имен Microsoft.Office.Tools.Outlook содержит набор классов и интерфейсов, которые позволяют создавать области форм для настройки форм Microsoft Office Outlook.

Я бы предложил пересмотреть базу кода и удалить неиспользуемые ссылки из проекта.,Также убедитесь, что пространство имен Outlook указывает на пространство имен Microsoft.Office.Interop.Outlook, например:

private static void ForceReconnectToExchangeServer(Microsoft.Office.Interop.Outlook.MailItem mi)
{
   mi.Subject = mi.Subject + "";       // <-- HERE
   mi.Save();
}
1 голос
/ 02 июля 2019

У вас есть ссылки на ботов в вашем проекте?Убедитесь, что нет конфликтов.

Также имейте в виду, что обновление Subject приведет к сбросу определенных свойств диалога.Сброс класса сообщения (IPM.Note.Dummy, затем возврат к исходному) может быть лучшей идеей.

...