gpt4 book ai didi

c# - 如何扩展一个可序列化的类以便它仍然可以被序列化?

转载 作者:行者123 更新时间:2023-11-30 12:16:53 26 4
gpt4 key购买 nike

我有一个这样的类,我想将它保存在 ViewState 中以用于 asp.net UserControl。它基本上使用一些方法扩展了通用列表,但也添加了一些属性,例如

public class MyListClass: List<MyObject>
{
public string ExtraData;
// some public methods
}

MyObject 是可序列化的,实现方法如下:

[Serializable()]
class MyObject
{
public MyObject(SerializationInfo info, StreamingContext ctxt)
{
Prop1 = (string)info.GetValue("Prop1", typeof(string));
//...
}
public void GetObjectData(SerializationInfo info, StreamingContext ctxt)
{
info.AddValue("Prop1",Prop1);
}
}

并且通用列表本质上是可序列化的。 ViewState 适用于 List<MyObject>但我似乎无法弄清楚如何为 MyListClass 实现序列化。

直觉上我想做的是这样的:

public MyListClass(SerializationInfo info, StreamingContext ctxt)
{
ExtraData= (string)info.GetValue("ExtraData", typeof(string));
this = (List<MyClass>)info.GetValues("BaseList",typeof(List<MyClass>));
}

显然那是行不通的。执行此操作的正确方法是什么?

最佳答案

您应该能够将 Serializable 标记放在 MyListClass 上,这将导致 ExtraData 被序列化为它自己的字段。

关于c# - 如何扩展一个可序列化的类以便它仍然可以被序列化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4504444/

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