Jag försöker göra en hyfas generell metod för att hämta tillbaka object från xml med QLinq (mest för att förstå hur det fungerar).
Följande kod hämtar objekt
var result = from e in XElement.Load(path).Elements(t.GetType().Name)
select new T()
{
};
Problemet är att jag får tillbaka X antal object som jag vill men de är tomma. Detta är ju inte så konstigt när jag inte fyller objectet efter new T().
Men jag vet itne hur jag ska lyckas fylla det, det verkar som man inte kan iterera i själva new T(). Antagligen är jag på helt fel spår, så någon får gärna komma med förslag på denna lösning eller hur man annars skulle kunna göra.
Du måste använda reflection, så du är helt rätt ute. Möjligen kan det vara en idé att markera de properties som ska sättas (med ett attribut) eller skapa en Fill(XElement element)-metod på klassen som skapas.
Du måste använda reflection, så du är helt rätt ute. Möjligen kan det vara en idé att markera de properties som ska sättas (med ett attribut) eller skapa en Fill(XElement element)-metod på klassen som skapas.
Japp, det kan man ju göra (y)
Frågan var hur jag kunde lösa att få ut objekten i XLinx i selecten eller itterationen. Tack för påpekandet! :)
Det snyggaste sättet att få ut objekten är ungefär så här:
public IEnumerable<T> LoadFromXml(string path)
{
//blabla
foreach (XElement elements in results.Elements((typeof(T)).Name))
{
T newT = new T();
//blabla
yield return newT;
}
}
263 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e