В настоящее время я программирую надстройку для Outlook 2007 и столкнулся с проблемой, когда пытался сериализовать вложение. Хотя у вложений System.Net.Mail есть ContentStream, который я могу использовать для сериализации данных, у вложений Microsoft.Office.Interop.Outlook его нет. К сожалению, единственный тип вложения, который я могу получить непосредственно из Outlook, — это Microsoft.Office.Interop.Outlook. Я немного поискал и не смог найти ничего похожего.
MailItem item = getMailObj(e);
String dataSend = serializeAttachment((System.Net.Mail.Attachment)item.Attachments[1]);
Как видите, я попытался преобразовать исходное вложение, но получил исключение Invalid Cast Exception:
Не удалось преобразовать COM-объект типа «System.__ComObject» в тип класса «System.Net.Mail.Attachment». Экземпляры типов, представляющих COM-компоненты, не могут быть приведены к типам, которые не представляют COM-компоненты; однако их можно приводить к интерфейсам, если базовый компонент COM поддерживает вызовы QueryInterface для IID интерфейса.
я тоже не могу просто поставить
System.Net.Mail.Attachment newAtt = item.Attachments[1];
Поскольку VisualStudio 2010 просто говорит мне привести его к типу. Любые предложения о том, как это исправить?