Serialisering af XML objekter
Jeg har lavet en metode som skriver et objekt om til XMl og gemmer filen på disk..jeg kunne godt tænke mig at XML dokumentet kom til at se sådan ud
<?xml version="1.0"?>
<Settings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="RRSCompanySettings">
<Setting>
<Name>Michael</Name>
<tlf>123456</tlf>
</Setting>
<Setting>
<Name>Hans</Name>
<tlf>987654</tlf>
</Setting>
<Setting>
<Name>Peter</Name>
<tlf>112233</tlf>
</Setting>
</Settings>
men det har jeg haft problemer med da mit output bliver til dette her
<?xml version="1.0"?>
<Settings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="RRSCompanySettings">
<Setting>
<Name>Peter</Name>
<Tlf>112233</Tlf>
</Setting>
<SettingsList>
<anyType xsi:type="Setting">
<Name>Michael</Name>
<Tlf>123456</Tlf>
</anyType>
<anyType xsi:type="Setting">
<Name>Hans</Name>
<Tlf>987654</Tlf>
</anyType>
<anyType xsi:type="Setting">
<Name>Peter</Name>
<Tlf>112233</Tlf>
</anyType>
</SettingsList>
</Settings>
Kan det lade så gøre at lave den simple xml så jeg har skrevet øverst
Her er min klasser:
-------------------------------------------------------
[XmlRootAttribute("Settings", Namespace = "RRSCompanySettings", IsNullable = false)]
public class Settings {
[XmlArray("Personer"),XmlArrayItem("Personer", typeof(Setting))]
private ArrayList m_SettingsList = new ArrayList();
[XmlElementAttribute("Setting")]
private Setting m_Setting;
/// <summary>
/// Det er de her properties som sørger for at variablerne bliver serialiseret
/// </summary>
#region Properties
public Setting Setting {
get { return m_Setting; }
set { m_Setting = value; }
}
public ArrayList SettingsList {
get { return m_SettingsList; }
set { m_SettingsList = value; }
}
------------------------------------------------------
public class Setting {
[XmlElementAttribute("Name")]
private String m_Name;
[XmlElementAttribute("Tlf")]
private int m_Tlf;
public String Name {
get { return m_Name; }
set { m_Name = value; }
}
public int Tlf {
get { return m_Tlf; }
set { m_Tlf = value; }
}
}
----------------------------------------------------
og min main:
---------------------------------------------------------
Settings settings = new Settings();
settings.CreateSettings("Michael",123456);
settings.CreateSettings("Hans",987654);
settings.CreateSettings("Peter",112233);
//denne metode serialisere
System.Xml.XmlDocument xml = XMLHandler.ObjToXML(settings);
xml.Save("C:\\tesfil.xml");