gpt4 book ai didi

c# - .net 中的二进制序列化/反序列化对象图大小是否有任何限制?

转载 作者:太空宇宙 更新时间:2023-11-03 13:53:08 26 4
gpt4 key购买 nike

例如,我有:

struct SomeStruct
{
//some fields
//each instance will store info read from file, maybe be 3kb, maybe more.
}

List<SomeStruct> lst = new List<SomeStruct>();

我将向该列表中添加大量对象,因此它的大小最终将达到 10Gbs 或更多。我可以序列化 lst 而不会出现内存不足等错误吗?我可以稍后反序列化它吗?

最佳答案

如果您可以一次将项目列表保存在内存中,那么您应该有很大的机会对它们进行序列化/反序列化。您可能希望在流中单独处理它们,而不是一次性序列化/反序列化整个列表。这将处理您可能遇到的任何边缘情况。

伪代码:

private void SerializeObjects(List<foo> foos, Stream stream)
{
foreach (var f in foos)
{
stream.Write(f);
}
}

private void DeserializeObjects(List<foo> foos, Stream stream)
{
foo f = stream.ReadFoo();
while (f != null)
{
foos.Add(f);
f = stream.ReadFoo();
}
}

关于c# - .net 中的二进制序列化/反序列化对象图大小是否有任何限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13159335/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com