C# でファイルに「オブジェクト」を書き込む必要がありますが、これまでの試みはすべてうまくいきませんでした。問題は、実際に書きたいオブジェクトが、Outlook 電子メールのオブジェクトのコレクションobject
から返されるタイプのものであることです。Attachments
MailItem
私はすでにそれをSQL Serverデータベースに挿入し、そこから正しいファイルを取得して正常に作成することができましたが、これが唯一の方法ではありません.
以下に示すようにも使用BinaryFormatter
してみましたが、最初に不要な文字が追加されるため、常にファイル ヘッダーが破損します (残りのデータは問題ないようです)。
[...]
using ( FileStream fileStream = new FileStream( tempName, FileMode.Create ) )
{
using ( BinaryWriter binaryWriter = new BinaryWriter( fileStream ) )
{
using ( MemoryStream memoryStream = new MemoryStream() )
{
object attachmentData =
attachment.PropertyAccessor.GetProperty( PR_ATTACH_DATA_BIN );
BinaryFormatter binaryFormatter =
new BinaryFormatter();
binaryFormatter.Serialize( memoryStream, attachmentData );
memoryStream.Seek( 0, SeekOrigin.Begin );
binaryWriter.Write( memoryStream.ToArray() );
}
}
}
[...]
何か案は?Outlook から取得したものを制御できないため、通常のシリアル化のアプローチは、ここで必要なものではないようです...