Ich leitete von List<int>
ab und möchte XML mit benutzerdefinierten Namen serraize. Beispiel:Benannte XML-Serialisierung von Liste
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.IO;
namespace xmlerror
{
[Serializable, XmlRoot("Foo")]
public class Foo : List<int>
{
}
class MainClass
{
public static void Main(string[] args)
{
var foo = new Foo();
foo.Add(123);
using (var writer = new StringWriter())
{
var serilizer = new XmlSerializer(typeof(Foo));
serilizer.Serialize(writer, foo);
Console.WriteLine(writer.ToString());
}
}
}
}
Ausgang:
<?xml version="1.0" encoding="utf-16"?>
<Foo xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<int>123</int>
</Foo>
Aber ich will <Bar>
statt <int>
das Element nennen. Ich habe die XML-Attribute XmlAnyElement
und XmlArrayItem
aber zu keinem Ende versucht. Wie kann ich den Namen der Element-Tags ändern? Muss ich es manuell mit XmlTextWriter
tun?
Das funktioniert auch, aber ich entschied mich, die andere Antwort zu verwenden. – aggsol