序列化问题

Har*_*run 1 c# serialization

现在我需要序列化我的一个对象,其中包含更多我自己的类对象.但问题是我不想将其保存在文件中然后将其检索到内存流中.有没有办法直接将我的对象序列化为流.

我使用BinaryFormatter进行seializing.首先,我直接使用MemoryStream来获取序列化输出,但是在反序列化时它给出了错误.但后来当我用文件序列化然后关闭它并再次重新打开它时,它完美地工作.但是我想把它直接带入流中,因为在我的程序中我需要经常将它传递到网络客户端.反复使用文件可能会降低我的软件速度.

希望我明白我的问题.任何Sugetion?

Wil*_*den 5

如果你试图从同一个反序列化MemoryStream,你有没有记得首先回到流的开头?

var foo = "foo";
var formatter = new BinaryFormatter();
using (var stream = new MemoryStream())
{
    // Serialize.
    formatter.Serialize(stream, foo);

    // Deserialize.
    stream.Seek(0, SeekOrigin.Begin);
    foo = formatter.Deserialize(stream) as string;
}
Run Code Online (Sandbox Code Playgroud)