根据MSDN文档,XMLWriter.WriteValue将xsd类型信息写入xml以获取简单CLR类型。然后XMLReader.ReadContentAsObject应该在解析XML时读出适当类型的对象。但是,这似乎总是为我返回一个字符串对象,并且XMLReader的ValueType属性是字符串。我试过插入long和DateTimes,但它们总是以字符串结尾。任何想法我做错了或这是一个Windows Phone的错误?XmlReader.ReadContentAsObject始终返回字符串类型
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
}
}
}