Ich habe ein XML-Dokument:wie verschachtelte XML in LINQ laden
<preferences>
<section name="PREF_SECTION_NAME_1">
<preference name="PREF_EXAMPLE_1" type="radio">
<default value="true"></default>
</preference>
<preference name="PREF_EXAMPLE_2" type="radio">
<default value="true"></default>
</preference>
<preference name="PREF_EXAMPLE_3" type="radio">
<default value="true"></default>
</preference>
</section>
<section name="PREF_SECTION_NAME_2">
<preference name="PREF_EXAMPLE_1" type="radio">
<default value="true"></default>
</preference>
<preference name="PREF_EXAMPLE_2" type="radio">
<default value="true"></default>
</preference>
<preference name="PREF_EXAMPLE_3" type="radio">
<default value="true"></default>
</preference>
</section>
</preferences>
und ich vertrete diese in meinen Klassen:
public class Preference
{
public string Name { get; set; }
public bool Default { get; set; }
}
public class Section
{
public string Name { get; set; }
public List<Preference> Preference { get; set; }
}
public class Preferences
{
public List<Section> Section { get; set; }
}
und ich versuche, dies in meiner C# Methode zu laden :
var xDoc = XDocument.Load("XMLFile.xml");
var sections = xDoc.Root
.Elements("Preferences")
.Select(x => new List<Section>
{
//what do I put in here?
})
.ToList();
Es scheint nichts offensichtlich zu sein, in das Bit zu legen // was stelle ich hier ein?
Ich habe viele Beispiele gesehen eine nicht verschachtelte Klasse auf diese Weise zu laden. Gibt es eine Möglichkeit, dies zu tun oder?
dank
Das Muster, das ich vor, gefolgt habe, ist eine Factory-Methode in jeder Klasse haben eine 'XElement' akzeptieren - und das andere nennen können, so dass die' statische Abschnitt FromXElement (XElement) 'Methode nennen würde' Preference.FromXElement' für Beispiel ... sehen, ob das genug ist, Sie –
@JonSkeet dank Einstieg werde ich in aussehen, dass –
@JonSkeet ich bei einem Ihrer Antworten hier auf der Suche war, die eine gute Art und Weise schien dies zu tun http://stackoverflow.com/questions/566167/Abfrage-an-XDocument-for-Elemente-by-Name-at-any-Tiefe –