[英]Unable to cast object to list
我有一段代码试图将我制作的对象转换为列表,而不会将对象转换为列表。 我不知道为什么会这样。
FileStream fs = new FileStream("students.dat", FileMode.Open);
BinaryFormatter bf = new BinaryFormatter();
List<Student> studentList = (List<Student>)bf.Deserialize(fs);
此代码错误在最后一行说:
Unable to cast object of type 'Project.Student' to type 'System.Collections.Generic.List`1[Project.Student]'.
对象创建如下所示:
[Serializable]
class Student
{
private String name;
private String surname;
private String id;
private int lab;
private int assign1;
private int assign2;
private int exam;
public Student(String name, String surname, String id)
{
this.name = name;
this.surname = surname;
this.id = id;
this.lab = 0;
this.assign1 = 0;
this.assign2 = 0;
this.exam = 0;
}
public Student(String name, String surname, String id, int lab, int assign1, int assign2, int exam)
{
this.name = name;
this.surname = surname;
this.id = id;
this.lab = lab;
this.assign1 = assign1;
this.assign2 = assign2;
this.exam = exam;
}
}
我只是想弄清楚为什么过去这样做时,它不会将对象投射到列表中。 在此问题上的任何帮助将不胜感激。
该错误似乎表明您序列化了Student
而不是List<Student>
。
如果有可能将其中任何一个序列化,则只需检查演员表并为Student
案例创建一个新列表:
object readObject = bf.Deserialize(fs);
if (readObject is List<Student>)
return (List<Student>)readObject
else if (readObject is Student)
return new List<Student>() { (Student)readObject };
else
return null;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.