我目前正在开发套接字服务器,我想知道 为什么序列化程序像
都需要 Stream而不是字节数组?
最佳答案
这意味着您可以流式传输到任意目的地,而不是只是内存。
如果要向文件写入内容,为什么要先在内存中创建一个完整的副本?在某些情况下,这可能会导致您使用很多 额外内存,从而可能导致故障。
如果你想创建一个字节数组,只需使用一个MemoryStream
:
var memoryStream = new MemoryStream();
serializer.Write(foo, memoryStream); // Or whatever you're using
var bytes = memoryStream.ToArray();
因此,通过“您使用流”的抽象,您可以轻松地使用内存 - 但如果抽象是“您使用字节数组”,您将被迫使用内存,即使您不这样做'不想。
关于c# - 为什么大多数序列化程序使用流而不是字节数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43000681/