【发布时间】:2012-07-08 14:53:27
【问题描述】:
我需要在 C# 中将“对象”写入文件,但到目前为止我的所有尝试都没有奏效。问题是我要编写的对象实际上是 object 类型,因为它是从 Outlook 电子邮件中的 MailItem 对象的 Attachments 集合返回的。
我已经设法将它插入到 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 获得的内容,因此通常的序列化方法似乎不是我需要的...
【问题讨论】:
标签: c# .net file object binary