我在寫一個需要返回對二進制文件引用的類接口。通常我會提供對文件的引用作爲文件路徑。但是,我正在考慮將一些文件(如小縮略圖)直接存儲在數據庫中,而不是在文件系統上。在這種情況下,我不想添加額外的步驟從數據庫中讀取縮略圖到光盤上,然後返回文件的路徑供我的程序讀取。我希望直接從數據庫流式傳輸圖像到我的程序中,並避免向光盤寫入任何內容,除非用戶明確要保存內容。我可以將FileStream作爲文件的通用接口返回嗎?
將我的界面返回FileStream
甚至Image
是否有意義?然後,由實施班級來確定FileStream
或Image
的來源是否是光盤上的文件或數據庫中的二進制數據。
public interface MyInterface
{
string Thumbnail {get;}
string Attachment {get;}
}
VS
public interface MyInterface
{
Image Thumbnail {get;}
FileStream Attachment {get;}
}
爲什麼在FileStream上流? – 2010-05-04 21:09:08
它從調用者中提取內容的來源。如果流可能是不同的源文件或某種數據庫blob,這是特別有用的。它也可以是一個MemoryStream。假設您最初開始使用某種數據庫blob流,然後決定先讀取整個blob,則可以切換到MemoryStream而不會影響調用者。一般來說,我總是使用Stream,除非調用者需要知道它是什麼類型的流。 (而且我至少在我的代碼中記不清這種情況是否屬實。) – jdasilva 2010-05-05 15:49:42