gpt4 book ai didi

.net - 自定义 .NET 序列化似乎不起作用

转载 作者:行者123 更新时间:2023-12-04 07:06:04 25 4
gpt4 key购买 nike

我正在使用 BinaryFormatter序列化类 A 的对象集合存储在 System::Collections::Generic::List<A^>^ .我添加了 [Serializable]标记并已实现 ISerializable在类 A (GetObjectData 和特殊构造函数)。反序列化时,我发现列表被反序列化并包含与序列化相同数量的元素。但是,这些元素中的每一个都是空引用。

我已经检查了抛出的异常,并确定情况并非如此。我已经检查以确保形式的特殊构造函数 A(SerializationInfo ^info, StreamingContext context)在反序列化过程中被称为正确的次数,但这些重新构造的对象并未从反序列化集合中引用。

我也换了System::Collections::Generic::List<A^>^array<A^>^我仍然得到相同的结果。该数组具有正确数量的元素,但每个元素都是空引用。

有谁见过类似的问题?有什么线索吗?

最佳答案

问题是在子对象中引用的任何对象不需要在 GetValue 之后立即完全反序列化。称呼。就我而言,通用 List尚未完全反序列化,因此仅包含空引用。我终于用了IDeserializationCallback在对象图完全反序列化后执行代码。

关于.net - 自定义 .NET 序列化似乎不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1097797/

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