我想用XmlSerializer
将我的对象保存到硬盘(如缓存)。在这种情况下,我没有任何问题。如何将XML反序列化未知类型的对象?
但是,当我想要将此XML反序列化为对象时,出现错误。有什么方法 将XML反序列化为未知对象或我创建的对象?
我想用XmlSerializer
将我的对象保存到硬盘(如缓存)。在这种情况下,我没有任何问题。如何将XML反序列化未知类型的对象?
但是,当我想要将此XML反序列化为对象时,出现错误。有什么方法 将XML反序列化为未知对象或我创建的对象?
另外,比较有效(比DOM或SAX)数据绑定的做法是在此article:
可以使用SerializationHelper.DeSerializeNow因为在我的岗位描述: http://borismod.blogspot.com/2008/07/nunit-serialization-test.html
internal class SerializationHelper
{
private static readonly string DefaultFilePath = "test.dat";
internal static void SerializeNow(object c)
{
SerializeNow(c, DefaultFilePath);
}
internal static void SerializeNow(object c, string filepath)
{
FileInfo f = new FileInfo(filepath);
using (Stream s = f.Open(FileMode.Create))
{
BinaryFormatter b = new BinaryFormatter();
b.Serialize(s, c);
}
}
internal static object DeSerializeNow()
{
return DeSerializeNow(DefaultFilePath);
}
internal static object DeSerializeNow(string filepath)
{
FileInfo f = new FileInfo(filepath);
using (Stream s = f.Open(FileMode.Open))
{
BinaryFormatter b = new BinaryFormatter();
return b.Deserialize(s);
}
}
}
问题是关于* XML *序列化,而不是二进制序列化... – 2009-10-13 08:58:36
对不起,我错过了XML中的问题。你可以使用这个: 你有什么异常? public Object DeserializeObject(String pXmlizedString) XmlSerializer xs = new XmlSerializer(typeof(Automobile)); MemoryStream memoryStream = new MemoryStream(StringToUTF8ByteArray(pXmlizedString)); XmlTextWriter xmlTextWriter = new XmlTextWriter(memoryStream,Encoding.UTF8); return xs.Deserialize(memoryStream); } – 2009-10-13 16:24:59
有没有办法在.NET中反序列化为未知对象。
要成功序列化/反序列化XML对象,该类必须具有默认构造函数。最好的方法是向我们显示确切的错误信息。你能做到吗?
为什么不首先序列化你的类的类型(System.Type类是可序列化的)?
然后您可以检查哪种类型被序列化并创建适当的实例。
代码?例外? – Scoregraphic 2009-10-13 06:49:16
用什么语言? – Rahul 2009-10-13 06:50:12