Entwickler-Ecke

IO, XML und Registry - XML Serialize => Objecte in XmlArray benennen


sdc4 - Do 03.05.12 14:44
Titel: XML Serialize => Objecte in XmlArray benennen
Hallo Forum,

kennt hier jemand eine Möglichkeit, die einzelnen Objekte, welche als XmlArray serialisiert werden sollen
und ihrerseits Objekte eine Klasse sind, ordentlich über zu benennen, hier ein Codeauszug.

Die Klasse "Script" soll als "script" in der XML-Datei erscheinen, leider kenne ich keinen Weg dies zu realisieren.

Danke für Eure Hilfe.


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
        [XmlArray("scripts")]
        public List<Script> Scripts
        {
            get { return _Scripts; }
            set { _Scripts = value; }
        }


    public class Script
    {
        [XmlAttribute]
        public string Exclude { get; set; }
        
        [XmlAttribute]
        public bool IgnoreCase { get; set; }
        
        [XmlAttribute]
        public bool IgnoreScript { get; set; }
        
        [XmlText]
        public string Value { get; set; }
    }


Moderiert von user profile iconTh69: C#-Tags hinzugefügt


Th69 - Do 03.05.12 15:12

Hallo und :welcome:

meinst du einfach

C#-Quelltext
1:
2:
3:
4:
5:
[XmlRoot(ElementName = "script")]
public class Script
{
  // ...
}

?


sdc4 - Do 03.05.12 15:22

user profile iconTh69 hat folgendes geschrieben Zum zitierten Posting springen:
Hallo und :welcome:

meinst du einfach

C#-Quelltext
1:
2:
3:
4:
5:
[XmlRoot(ElementName = "script")]
public class Script
{
  // ...
}

?


Hallo,

danke für die schnelle Antwort.

Leider funktioniert es so nicht, das die Klasse "Script" nicht das Rootelement ist,
sie ist nur das "listenelement" für public List<Script> Scripts, welches als [XmlArray("scripts")] definiert wurde.


Th69 - Do 03.05.12 15:27

Hallo,

sorry, wollte gerade noch meinen Beitrag editieren - da hast du schon gepostet.

Hier nun die hoffentlich richtige Antwort:

C#-Quelltext
1:
2:
3:
4:
5:
6:
[XmlArray("scripts")]
[XmlArrayItem("script")]
public List<Script> Scripts
{
  // ...
}


Ansonsten kannst du unter Steuern der XML-Serialisierung mit Attributen [http://msdn.microsoft.com/de-de/library/2baksw0z.aspx] mehr dazu nachlesen.