系列化到XML的问题是,如果你的类被序列变化(新属性),那么XML不能被用来重新创建类的实例。
如果类是相当简单的(或者即使它不是),你可以做手工:
XmlDocument doc = new XmlDocument();
XmlNode root = doc.CreateNode(XmlNodeType.Element,"root")
doc.AppendChild(root)
XmlNode newPage = doc.CreateNode(XmlNodeType.Element,"pattern")
root.AppendChild(newPage)
newPage.Attributes.Append(doc.CreateAttribute("Name",pattern.Name)
foreach (Hole h in pattern.Holes)
{
XmlNode hole = doc.CreateNode(XmlNodeType.Element,"hole")
hole.Attributes.Append(doc.CreateAttribute("XCoord",h.Xcoord)
hole.Attributes.Append(doc.CreateAttribute("YCoord",h.Ycoord)
newPage.AppendChild(hole)
}
// etc
doc.Save("output.xml")
此代码是粗糙的,但它会产生类似:
<root>
<pattern name="Pattern1">
<hole XCoord="100" YCoord="50" />
</pattern>
</root>
难道以下任何回答你的问题? – DMCS 2009-02-25 21:41:22
我相信他们有,只是看着答复。但是,我还没有时间进入我的应用程序的那部分。我确定计划,因为我想知道如何做到这一点。 – MattSlay 2009-02-27 15:42:07