思归 大哥请进,请教一个关于 从XML文件反序列化对象的问题?
我有一个Book类:
public class Book
{
public Book() { }
public string Title;
public string Author;
public string ISBN;
public string Publisher;
}
static void Main(string[] args)
{
Book BookObject = new Book();
XmlSerializer ser = new XmlSerializer(typeof(Book));
TextWriter writer = new StreamWriter("INPUT-Test-004.xml");
BookObject.Title = "Practical LotusScript";
BookObject.ISBN = "1884777767 ";
BookObject.Publisher = "Manning Publications";
BookObject.Author = "Liming";
ser.Serialize(writer, BookObject);
writer.Close();
}
以上将一个Book对象序列化到一个xml文件中,现在我想问:
1、假如我只知道一个XML文件是将某个类序列化后的结果,不知道类名,我现在想反序列化这个xml文件成为一个对象,
能不能这样写:
XmlSerializer ser = new XmlSerializer(typeof(object));
System.IO.FileStream fs = new System.IO.FileStream(@"D:\temp\SOAPTest\DataPath\INPUT-Test-004.xml", FileMode.Open);
System.Xml.XmlTextReader reader = new System.Xml.XmlTextReader(fs);
object BookObject = (object)(ser.Deserialize(reader));
反序列化成一个object类型的对象,然后用反射的方法取得这个类的类名和字段和字段值?
如果可以的话,为何在执行到object BookObject = (object)(ser.Deserialize(reader)); 这一句时会出错。