【发布时间】:2012-12-26 03:24:10
【问题描述】:
我知道这个问题已经被问过了,但是我有一个奇怪的问题,我不知道该怎么办:
public static class XmlHelper
{
public static T Deserialize<T>(string xml)
{
using (var sr = new StringReader(xml))
{
var xs = new XmlSerializer(typeof(T));
return (T)xs.Deserialize(sr);
}
}
public static string Serialize(object o)
{
using (var sw = new StringWriter())
{
using (var xw = XmlWriter.Create(sw))
{
var xs = new XmlSerializer(o.GetType());
xs.Serialize(xw, o);
return sw.ToString();
}
}
}
}
[Serializable]
public class MyClass
{
public string Property1 {get;set;}
public int Property2 {get;set;}
}
我正在序列化类:
var a = XmlHelper.Serialize(new MyClass{ Property1 = "a", Property2 = 3 });
var b = XmlHelper.Deserialize<object>(a);
错误:XML 文档中存在错误 (1, 41)。
编辑:我想反序列化一个 as 对象,可以吗?
【问题讨论】:
-
失败在哪一行?
-
您的 XML 格式是否正确?
-
你能展示一下这个对象吗?
-
对于
XmlSerializer,诀窍始终是查看.InnerException,然后查看.InnerException,依此类推。如果您知道去哪里查找,它通常可以很好地告诉您问题所在。 -
@James 那将是
return (T)xs.Deserialize(sr);,来自消息
标签: c# xml xml-serialization xml-deserialization