读书人

反序列化后子类对象自动转成父类而

发布时间: 2013-11-02 19:41:10 作者: rapoo

反序列化后,子类对象自动转成父类,并且无法恢复成子类,数据丢失,求解


[Serializable]
public class jProcess
{
public string Name { get; set; }
public List<jBaseNode> ProcessNodes { get; set; }
public jProcess()
{
ProcessNodes = new List<jBaseNode>();
}

public string GenerateProgress(string currentTaskName)
{
jTask firstTask = ProcessNodes.Where(p => p is jTask).FirstOrDefault() as jTask;
StringBuilder sb = new StringBuilder ();
sb.Append("<span class='blue'>");
Build(currentTaskName,firstTask,sb);
return sb.ToString().TrimEnd('-','-','>');


}

private void Build(string currentTaskName,jTask task,StringBuilder sb)
{
sb.Append(task.AssigneeName+task.Remark);
if(task.Name==currentTaskName)
{
sb.Append("</span>");
}
sb.Append("-->");
jTask nextTask = task.TransitionList.Where(t=>t.Selected).FirstOrDefault().TargetNode as jTask;
if(nextTask==null)
{
return;
}
else
{
Build(currentTaskName,nextTask,sb);
}
}
}

这是我序列化的对象类,他包含一个List<jBaseNode> ProcessNodes集合,其中jBaseNode是基类,我有很多个子类继承自他,问题是序列化之后,得到的字符串里面是包含子类数据的,但是反序列化以后,生成的List<jBaseNode> ProcessNodes集合,里边的所有对象都是jBaseNode的类型了,无法再转成对应的子类,并且数据都丢失了,求解,谢谢! 序列化?反序列化?子类?父类?数据丢失
[解决办法]
对象系列化与反系列化 .

http://blog.csdn.net/hdhai9451/article/details/12129579

读书人网 >C#

热点推荐