我正在编写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]);
正如你所看到的,我尝试了对初始附件进行类型转换,但是我得到了一个无效的强制转换异常:
无法转换类型的COM对象 'System .__ ComObject'到类类型 'System.Net.Mail.Attachment'。 表示COM的类型的实例 组件无法转换为类型 不代表COM组件; 但是它们可以转换为接口 只要底层的COM component支持QueryInterface 要求接口的IID。
我也不能只是把
System.Net.Mail.Attachment newAtt = item.Attachments[1];
因为VisualStudio 2010只是告诉我对它进行类型转换。有关如何解决此问题的任何建议吗?
答案 0 :(得分:1)
我不认为类型可以被转换或转换。只需阅读Outlook附件的内容并将其写入Mail.Attachment。
答案 1 :(得分:-4)
我尝试了这段代码并且有效:
htmbody = "<HTML><BODY>"
htmbody = htmbody + "<table border=0>"
htmbody = htmbody + "<tr>"
htmbody = htmbody + "<td><img src=C:\temp\filename\place.png></td>"