Ich versuche, eine benutzerdefinierte Klasse in XML zu serialisieren. Hier ist die Klasse:XmlSerializer nicht mit XmlRoot für die Klasse
[Serializable()]
[XmlRoot("KVP")]
public class SerializableKeyValuePair<TKey, TValue>
{
public SerializableKeyValuePair()
{ }
public SerializableKeyValuePair(TKey key, TValue value)
{
Key = key;
Value = value;
}
public TKey Key { get; set; }
public TValue Value { get; set; }
}
Hier ist der Code, der es zu serialisiert versucht:
var xmlWriter = new StringWriter();
Type[] extraTypes = new Type[1] { typeof(SerializableKeyValuePair<string, string>) };
var xmlSerializer = new XmlSerializer(typeof(List<SerializableKeyValuePair<string, string>>), extraTypes);
xmlSerializer.Serialize(xmlWriter, functions);
xmlRet = xmlWriter.ToString();
Und hier ist das tatsächliche Ergebnis:
<ArrayOfSerializableKeyValuePairOfStringString>
<SerializableKeyValuePairOfStringString>
<Key>Min</Key>
<Value>Min</Value>
</SerializableKeyValuePairOfStringString>
<SerializableKeyValuePairOfStringString>
<Key>MinAvgMax</Key>
<Value>MinAvgMax</Value>
</SerializableKeyValuePairOfStringString>
</ArrayOfSerializableKeyValuePairOfStringString>
Was ich würde gerne sehen, ist das Folgende, aber es scheint nicht das von mir definierte XmlRoot zu verwenden. Kann mir jemand helfen, herauszufinden, wie man diese XML-Struktur bekommt?
<ArrayOfKVP>
<KVP>
<Key>Min</Key>
<Value>Min</Value>
</KVP>
<KVP>
<Key>MinAvgMax</Key>
<Value>MinAvgMax</Value>
</KVP>
</ArrayOfKVP>
TIA!
Das war es schaffen könnte! Ich wusste, dass das nicht meine Wurzel war, aber die Dokumentation sagte, dass ich XmlElement nicht auf Klassenebene verwenden konnte und ich missverstand, wofür XmlType war. Danke, dass du mich richtig gestellt hast! – VG1