【发布时间】:2014-03-18 11:02:36
【问题描述】:
我知道这是一个非常愚蠢的问题,但我被困住了......(类似的问题没有有用的答案here)
我的xml是
<Param>
<MyList>
<mynode>aaa</mynode>
<mynode>bbb</mynode>
<mynode>ccc</mynode>
<mynode>ddd</mynode>
</MyList>
</Param>
我有这样的课程
public class MyClass
{
[XmlArray("MyList")]
[XmlArrayItem("mynode")]
public List<string> MyList { get; set; }
}
但是当我尝试反序列化时,我得到一个 nullerrorexception
为什么这不起作用?
编辑: 反序列化代码:
public static Param InitConfig(string Path)
{
XmlRootAttribute xRoot = new XmlRootAttribute();
xRoot.ElementName = "Param";
xRoot.IsNullable = true;
XmlSerializer serializer = new XmlSerializer(typeof(Param), xRoot);
using (StreamReader reader = new StreamReader(Path))
{
return (Param)serializer.Deserialize(reader);
}
}
和
public class Param
{
public MyClass MyClass {get; set;}
}
(实际上更复杂)
【问题讨论】:
-
那么什么不起作用?错误是什么?出了什么问题?
-
尝试用示例数据填充类并对其进行序列化 - 然后您将看到反序列化期望作为输入的内容。
-
无法触摸 xml 文件...我必须弄清楚如何在 List
中反序列化该结构
标签: c# xml xml-deserialization