我最近在查看一段使用System.Net.Mail.Attachment將文件附加到電子郵件的代碼。當前的實現是將附件作爲文件存儲到存儲設備並給它一個唯一的名稱。該文件然後被附加到MailMessage如下:然後從文件讀取使用存儲流的好處
Attachment data = new Attachment(filename);
message.Attachments.Add(data);
電子郵件被髮送和文件,然後從存儲裝置中刪除。
對於只存儲在MemoryStream中的文件(它已經是這樣)不是更快/更好,然後只是將它作爲附件傳遞給電子郵件?我會想象MailMessage類中的某個地方正在將文件讀入流中並以相同的方式發送,並且將其存儲到磁盤的整個過程完全沒有必要。
我的直覺......寫入磁盤是完全unnessarry和使用流應實施。 (我錯了嗎?)
我知道有一個流版本,只是看到實施者是否正在考慮我忽略的某些內容。或者他們只是不理解流,但使用原始文件更熟悉,所以他們走上了這條路。 – cgatian
@cgatian最有可能的是後者。我認爲首先將它寫入文件的唯一原因是歸檔/備份/失敗安全。 –