MSDNのドキュメントによると、XMLWriter.WriteValueはxmlに単純なCLR型のxsd型情報を書き込みます。 XMLが解析されると、XMLReader.ReadContentAsObjectは適切に型付けされたオブジェクトを読み込みます。しかし、これは常に私のための文字列オブジェクトを返すようであり、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
}
}
}