Mam klasy jak poniżej:Jak korzystać z XmlElementAttribute dla listy <T>?
public class Level
{
[XmlAttribute]
public string Guid { get; set; }
}
public class LevelList : List<Level>
{
}
public class Test
{
public LevelList CalLevelList { get; set; }
}
Korzystanie XmlSerializer, mam wyjścia tak:
<CalLevelList>
<Level Guid="0de98dfb-ce06-433f-aeae-786b6d920aa6"/>
<Level Guid="0de98dfb-ce06-433f-aeae-786b6d920aa7"/>
</CalLevelList>
Która jest technicznie poprawne. Jednak bez zmiany nazwy klas, chciałbym, aby wygląd wyjście tak:
<Levels>
<L Guid="0de98dfb-ce06-433f-aeae-786b6d920aa6"/>
<L Guid="0de98dfb-ce06-433f-aeae-786b6d920aa7"/>
</Levels>
wiem, można to zrobić za pomocą atrybutów, ale nie mogliśmy zorientować się, jak to zrobić. Kiedy dodać atrybut do klasy testowej tak:
public class Test
{
[XmlElement("Levels")]
public LevelList CalLevelList { get; set; }
}
wyjście jest dość zaskakujące:
<Levels Guid="0de98dfb-ce06-433f-aeae-786b6d920aa6"/>
<Levels Guid="0de98dfb-ce06-433f-aeae-786b6d920aa7"/>
Oznacza to, że straciłem węzeł nadrzędny. Określona nazwa elementu staje się nazwą węzła. Dlaczego to? jak to działa?
To działa. Dziękuję Ci bardzo! – newman