1

現在Outlook2007のアドオンをプログラミングしていますが、添付ファイルをシリアル化しようとしたときに問題が発生しました。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]);

ご覧のとおり、最初の添付ファイルを型キャストしようとしましたが、無効なキャスト例外が発生しました。

タイプ「System.__ComObject」のCOMオブジェクトをクラスタイプ「System.Net.Mail.Attachment」にキャストできません。COMコンポーネントを表す型のインスタンスは、COMコンポーネントを表さない型にキャストできません。ただし、基盤となるCOMコンポーネントがインターフェイスのIIDに対するQueryInterface呼び出しをサポートしている限り、インターフェイスにキャストできます。

私も置くことはできません

System.Net.Mail.Attachment newAtt = item.Attachments[1];

VisualStudio 2010は、型キャストするように指示しているだけです。これを修正する方法について何か提案はありますか?

4

2 に答える 2

1

タイプをキャストしたり変換したりできるとは思いません。Outlookの添付ファイルの内容を読み取り、Mail.Attachmentに書き込むだけです。

于 2011-03-31T18:17:49.337 に答える
-4

私はこのコードを試してみましたが、うまくいきます:

htmbody = "<HTML><BODY>"
htmbody = htmbody + "<table border=0>"
htmbody = htmbody + "<tr>"
htmbody = htmbody + "<td><img src=C:\temp\filename\place.png></td>"
于 2016-06-07T15:13:18.503 に答える