如何在序列化的泛型列表中查找对象位置

本文关键字:查找 对象 位置 列表 泛型 序列化 | 更新日期: 2023-09-27 18:04:32

因为我可以直接访问序列化泛型列表中的特定对象,所以我需要从反序列化流中知道它的位置。

private static void Serialze(object obj, FileStream Stream)
    {
        BinaryFormatter bin = new BinaryFormatter();
        bin.FilterLevel = System.Runtime.Serialization.Formatters.TypeFilterLevel.Low;
        bin.Serialize(Stream, obj);
    }
private static object DeSerialize(FileStream Stream)
    {
        if (Stream.Position >= Stream.Length) return null;
        BinaryFormatter bin = new BinaryFormatter();
        bin.FilterLevel = System.Runtime.Serialization.Formatters.TypeFilterLevel.Low;
        object x = bin.Deserialize(Stream);
        return x;
    }

假设我有一个像这样的通用列表:

List<MyClass> L1=new List<MyClass>();

我如何在我的FileStreem中找到L1[10]的位置,以便在反序列化方法中使用它?

如何在序列化的泛型列表中查找对象位置

BinaryFormatter使用的格式不可寻。不能提取子对象。

这个问题可能是xy问题的一个实例。告诉我们你想达到什么目标,为什么你需要这个。我问了,没有答案。

也许你可以使用数据库代替。或者,使用更灵活的协议缓冲区