1
我需要用C#編寫一個「對象」到一個文件,但到目前爲止我所有的嘗試都無法工作。問題是我想要寫入的對象實際上是object
,因爲它是從Outlook電子郵件的對象的Attachments
集合中返回的。如何在C#中將對象寫入二進制文件?
我已經設法將其插入到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獲得,因此通常的做法系列化似乎沒有什麼,我需要在這裏...
噢,我的上帝,一個人怎麼會失明......這正是我所需要的,只是嘗試過而且能夠發揮作用。謝謝! – Gorgsenegger 2012-07-09 08:19:08
另請注意,您不要在此處寫入對象,而是寫入對象的內容。你的信號測試指向serializaton,它不會導致內容(僅)。 – TomTom 2012-07-09 08:38:16