比方说,我有这个虚构的XML:XML反序列化到不同的类名称
<Schedule>
<Month name="March">
<Day name="Monday" />
</Month>
<Month name="April">
<Day name="Tuesday" />
<Day name="Monday" />
</Month>
</Schedule>
我想反序列化上面。不过,我想使用不同的类层次结构反序列化此xml,因为类Schedule,Month和Day在其他地方使用。
因此,例如,我想有这些类:
[XmlRoot("Schedule")
public class ParserSchedule
{
[XmlElement("Month")]
public List<ParserMonth> Month{ get; set; }
}
public class ParserMonth
{
[XmlAttribute("name")]
public string Name{ get; set; }
[XmlElement("Day")]
public List<ParserDay> Day{ get; set; }
}
public class ParserDay
{
[XmlAttribute("name")]
public string Name{ get; set; }
}
然而,这是行不通的。我收到异常说Day不能被序列化,因为它没有默认的公共构造函数。我猜这是因为它试图创建Day类的实例而不是ParserDay类。
无论如何要做到这一点?
你在问题中省略了ParsedDay中的构造函数还是没有?你有上课吗?你能发布确切的错误信息吗? – 2011-12-21 14:01:54
如果你省略了构造函数,那么.NET在默认情况下生成一个无参数的空构造函数...... – 2011-12-21 14:10:01
请不要将C#放在标题中。这就是标签的用途。 – Amy 2011-12-22 01:40:47