現在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は、型キャストするように指示しているだけです。これを修正する方法について何か提案はありますか?