У меня есть такой класс, который я хочу сохранить в 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>));
}
Очевидно,это не сработает.Как правильно это сделать?