Ich habe den folgenden Code:Benutzerdefinierte Knotennamen mit XML-Serialisierung (.NET)
public class Foo {}
static class Program {
[XmlElement("foo")] // Ignored :(
static public List<Foo> MyFoos { get; private set; }
public static void Main() {
MyFoos.Add(new Foo());
MyFoos.Add(new Foo());
XmlSerializer configSerializer =
new XmlSerializer(typeof(List<Foo>), new XmlRootAttribute("foos"));
using (TextWriter w = new StreamWriter("test.xml"))
{
s.Serialize(w, MyFoos);
}
}
}
, die die folgende XML-Datei erzeugt:
<?xml version="1.0" encoding="utf-8"?>
<foos xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Foo />
<Foo />
</foos>
Was würde ich wirklich haben mag, ist die Foo
Elemente, die als foo
gekennzeichnet sind, stattdessen ... Ich weiß, dass dies hauptsächlich kosmetisch ist, aber es passt zu dem, was in XML allgemein als normal angesehen wird.
XmlElementAttribute ist nicht für Klassendefinitionen erlaubt: Attribut 'XmlElement' ist nicht gültig für diesen Deklarationstyp. Es ist nur gültig für die Deklarationen "property, indexer, field, param, return". –
Er hat es auf einem Grundstück, nicht? –
Es ist eine statische Eigenschaft und wird immer ignoriert. –