【发布时间】:2016-06-06 15:35:09
【问题描述】:
我正在尝试将自定义类序列化为 XML。这是课程:
[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; }
}
这是尝试序列化它的代码:
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();
这是实际结果:
<ArrayOfSerializableKeyValuePairOfStringString>
<SerializableKeyValuePairOfStringString>
<Key>Min</Key>
<Value>Min</Value>
</SerializableKeyValuePairOfStringString>
<SerializableKeyValuePairOfStringString>
<Key>MinAvgMax</Key>
<Value>MinAvgMax</Value>
</SerializableKeyValuePairOfStringString>
</ArrayOfSerializableKeyValuePairOfStringString>
我希望看到的是以下内容,但它似乎没有使用我定义的 XmlRoot。谁能帮我弄清楚如何获得这个 XML 结构?
<ArrayOfKVP>
<KVP>
<Key>Min</Key>
<Value>Min</Value>
</KVP>
<KVP>
<Key>MinAvgMax</Key>
<Value>MinAvgMax</Value>
</KVP>
</ArrayOfKVP>
TIA!
【问题讨论】:
标签: c# xml serialization xmlserializer