【发布时间】:2014-10-04 13:57:34
【问题描述】:
我希望这不是一个重复的问题。 我有这样的课:
[Serializable]
class MyClass
{
int type;
List <FileStream> listfile;
string content_text;
public MyClass(int t)
{
type = t;
}
public MyClass()
{
type = 0;
}
}
我需要使用 Socket.Send(byte []) 方法在 Socket 中发送 Myclass 的对象。 所以我必须序列化这个对象。但是,如果我添加 [Serializable],FileStream 不是可序列化的,并且我会得到一个异常运行时。 有人可以帮助我吗? 非常感谢。
【问题讨论】:
-
你得到什么异常?
-
流表示任意长度的字节集合。您可以将其序列化为字节数组,但如果文件非常大,它可能实际上不适合内存。您最好创建一个协议来使用一系列固定大小的缓冲区传输来传输内容,并将其存储为另一端的文件,该文件可以在那里作为流打开和读取。如果它足够小,可以作为对象传输,则考虑更好地表示其内容。
-
发送 FileStream 对象列表的目的是什么?无论如何,您都需要打开该文件。只需保留文件属性的列表(路径,FileMode ...)。
标签: c# serialization filestream