English 中文(简体)
否 我把一个档案库作为通用接口归还档案?
原标题:Could I return a FileStream as a generic interface to a file?

I m 撰写一门需要复读双版档案的班级接口。 通常,我将提到档案作为档案途径。 然而,Im考虑将一些档案(如小umb)储存在一个数据库中,而不是在档案系统中。 在此情况下,我不想在数据库中添加一句话,读完th子,然后回到我节目的档案。 我想要将数据库中的形象直接输入我的节目,避免向迪斯科舞厅撰写任何内容,除非用户明确想要挽救某些东西。

我的接口将返回<代码>。 文件Stream 甚至Imagemake 意义? 然后由执行类别确定:<代码>FileStream或_Image的源头是否在数据库中是单项或双向数据。

public interface MyInterface
{ 
    string Thumbnail {get;}
    string Attachment {get;}
}

v

public interface MyInterface
{ 
    Image Thumbnail {get;}
    FileStream Attachment {get;}
}
最佳回答

对于像th子一样使用的小内容,我认为,如果使用的话,你会更好回去。 如果你在目的可能有所不同或可能是部分阅读的原因时发现大内容的话,那么Stream是去的。 在这两种情况下,内容的来源都隐藏在该类使用者手中。 您也想考虑上游的处置,以及您是否希望该类用户控制数据库连接的开放时间。

问题回答

页: 1 输入档案或数据库的物体

你可以。 不过,我会改变接口,以便更像:

public interface MyInterface
{ 
    Image CreateThumbnail();
    FileStream CreateAttachment();
}

这解决了归还物体的寿命的任何模糊性;例如,不让它们从你手中处置。

如果档案的大小并不大,并适合记忆,那么你可以使用<代码>byte[ ]。 否则,Stream 适当发布。





相关问题
Anyone feel like passing it forward?

I m the only developer in my company, and am getting along well as an autodidact, but I know I m missing out on the education one gets from working with and having code reviewed by more senior devs. ...

NSArray s, Primitive types and Boxing Oh My!

I m pretty new to the Objective-C world and I have a long history with .net/C# so naturally I m inclined to use my C# wits. Now here s the question: I feel really inclined to create some type of ...

C# Marshal / Pinvoke CBitmap?

I cannot figure out how to marshal a C++ CBitmap to a C# Bitmap or Image class. My import looks like this: [DllImport(@"test.dll", CharSet = CharSet.Unicode)] public static extern IntPtr ...

How to Use Ghostscript DLL to convert PDF to PDF/A

How to user GhostScript DLL to convert PDF to PDF/A. I know I kind of have to call the exported function of gsdll32.dll whose name is gsapi_init_with_args, but how do i pass the right arguments? BTW, ...

Linqy no matchy

Maybe it s something I m doing wrong. I m just learning Linq because I m bored. And so far so good. I made a little program and it basically just outputs all matches (foreach) into a label control. ...

热门标签