Laden...

Bei XML-Deserialsierung Array für indizierten Zugriff erstellen

Erstellt von bafla13 vor 11 Jahren Letzter Beitrag vor 11 Jahren 941 Views
B
bafla13 Themenstarter:in
23 Beiträge seit 2012
vor 11 Jahren
Bei XML-Deserialsierung Array für indizierten Zugriff erstellen

Hallo ,

Mein Problem ist so,
Ich habe Eine XML Dateien,innerhalb dieser Datei,befindet Sich ein Element dass so aussieht


<Pack>
         <Apps>
                 <App>
                           <AppId>1</AppId>
                 </App>
                 <App>
                          <AppId>2</AppId>
                 </App>
        </Apps>

        <PackId>5</PackId>
</Pack>

Nun ,damit ich das als eine Liste erstellen kann ,habe ich das folgende eingetippt


[Serializable]
    public class Packs
    {

        [XmlElement("Pack")]
        public List<Pack> Packages;
    }

[Serializable]
    public class Pack
    {
        [XmlElement("Apps")]
        public Apps Applications;
     }
//Und eine Klasse Apps dafür
[Serializable]
    public class Applications
    {
        [XmlElement("App")] public List<App> Application;
    }
//und die letzte Klasse ist 

[Serializable]
    public class Application
    {
        [XmlElement("AppId")]
        public string AppId { get; set; }
    }

Das schöne an der Sachen ist,dass das ganze funktioniert,aber wenn ich das Array von apps bekommen möchte muss ich das folgende code eintippen


      var package=.................
      package.Applications.Application[0]

Und das ist sehr hässlich 😦
Könnte mir jemand erklären wie das laufen kann sodass auf das Array so zugreifen kann

package.Applications[0]

Vielen Dank für eure Hilfe

5.657 Beiträge seit 2006
vor 11 Jahren

Hi bafla13,

du könntest deiner Applications-Klasse einen Indexer verpassen.

Christian

Weeks of programming can save you hours of planning

B
bafla13 Themenstarter:in
23 Beiträge seit 2012
vor 11 Jahren

Wie meintst du es 😃

Hinweis von gfoidl vor 11 Jahren

Bitte beachte [Hinweis] Wie poste ich richtig? Punkt 1.1.

106 Beiträge seit 2011
vor 11 Jahren
2.891 Beiträge seit 2004
vor 11 Jahren

Es sollte eigentlich auch so funktionieren:


public class Pack
{
	[XmlArray("Apps")]
	[XmlArrayItem("App")]
	public Application[] Applications;
}

B
bafla13 Themenstarter:in
23 Beiträge seit 2012
vor 11 Jahren

Danke ,das hat super funktioniert 😃