gpt4 book ai didi

c# - 指定如何序列化我的对象(如果它在列表中)

转载 作者:太空狗 更新时间:2023-10-29 21:50:35 27 4
gpt4 key购买 nike

我有一个有点复杂的类,它可能包含也可能不包含相同类型的项目列表

Class Items
{
List<Items> SubItems ...

}

类本身是可序列化的,但是序列化列表中的对象将是一种巨大的空间浪费,因为它们在被包含在列表中之前被序列化并添加到数据库中。

有没有一种方法可以指定列表在序列化时应表示为整数列表?

注意:这些整数将代表序列化对象所在行的主键。

最佳答案

Is there a way that I can specify that the list should be represented as a list of integers when its serialized?

是的。有两个主要选项:

1) 实现ISerializable - 接口(interface),您可以在其中控制对象将如何序列化/反序列化。

2) 将您的列表声明为 [NonSerialized]并管理一个私有(private)成员列表,其中包含您的主键。不过,您必须自己实现加载/存储 Integer-List 的逻辑。

如果您要序列化的类很大,我建议您使用第二种方法,因为在另一种情况下,您必须手动序列化/反序列化每个属性。

关于c# - 指定如何序列化我的对象(如果它在列表中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18067155/

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