Согласно документации MSDN, XMLWriter.WriteValue записывает информацию о типе xsd в xml для простых типов CLR.Затем XMLReader.ReadContentAsObject предположительно считывает объект с соответствующей типизацией при анализе XML.Тем не менее, мне кажется, что это всегда возвращает строковый объект, а свойство ValueType XMLReader является строковым.Я пытался вставить long и DateTimes, но они всегда заканчиваются как строки.Есть идеи, что я делаю не так, или это ошибка Windows Phone?
Код записи XML
public void WriteXml(XmlWriter writer) {
// KeyValuePair<string, object> pair initialized previously
writer.WriteStartElement(pair.Key);
writer.WriteValue(pair.Value)
writer.WriteEndElement();
}
Код синтаксического анализа XML
public void ReadXml(XMLReader reader) {
while (reader.Read()) {
if (reader.NodeType == XmlNodeType.Element) {
Type T = reader.ValueType; // T is string
reader.ReadStartElement();
object o = reader.ReadContentAsObject(); // o is string
o = reader.ReadContentAs(T, null); // o is string
}
}
}