【发布时间】:2013-11-27 19:46:07
【问题描述】:
您好,我是 C# 新手,我正在尝试序列化一些数据。我有一个基类,它实现了ISerializable 和更多扩展基类的子类。在我的基类中,我写了这个:
protected BaseClass(SerializationInfo info, StreamingContext context)
{
if (info == null)
throw new System.ArgumentNullException("info");
}
[SecurityPermission(SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.SerializationFormatter)]
public virtual void GetObjectData(SerializationInfo info, StreamingContext context)
{
if (info == null)
throw new System.ArgumentNullException("info");
}
问题是当我运行我的程序时,我得到这个错误,说我的子类没有被标记为可序列化。
这是一个大工程。我基本上有一个学生班class Student : ISerializable,这是基类,我有GraduateStudent : Student和PhDStudent : Student。当我尝试序列化学生列表(可以是 Student、GraduateStudent 或 PhDStudent)时,出现上述错误。我也试过这样写PhDStudent : Student,ISerializable但没有成功
【问题讨论】:
-
然后标记为
[Serializable]:) -
我已经这样做了,但我得到了同样的错误
-
我们只能使用给出的信息和示例。请在上面的示例中包含它。
-
信息很清楚:标记子类型。但是:我强烈向您建议 BinaryFormatter 会在这里伤害您
-
我已经写了更多关于它的信息并更新了问题
标签: c# serialization