J'ai le code suivant:noms de noeud personnalisé avec sérialisation XML (.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);
}
}
}
qui produit le fichier XML suivant:
<?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>
Ce que je voudrais vraiment avoir est le Foo
Les éléments étiquetés foo
, à la place ... Je réalise que c'est surtout cosmétique, mais cela correspond à ce qui est généralement considéré comme normal en XML.
XmlElementAttribute n'est pas autorisé sur les définitions de classe: L'attribut 'XmlElement' n'est pas valide pour ce type de déclaration. Il n'est valable que pour les déclarations 'property, indexer, field, param, return'. –
Il l'a sur une propriété, non? –
C'est une propriété statique et sera toujours ignorée. –