如何反序列化和强制转换以下xml文件?我希望Valid元素被转换为bool属性,Time对象被转换为DateTime属性
<Foo>
<Valid>True</Valid>
<Time>19/02/2012 00:25:50</Time>
</Foo>
并且没有反射请
Xml反序列化。
创建具有属性的类:
class Foo
{
[XmlAttribute]
public bool valid;
[XmlAttribute]
public DateTime time;
}
记住-字段必须是公共的。
然后:
FileStream fs = new FileStream(filename, FileMode.Open);
XmlReader reader = XmlReader.Create(fs);
XmlSerializer xs = new XmlSerializer(typeof(Foo));
Foo foo = (Foo)xs.Deserialize(reader);
fs.Close();
.net有一个xmlserializer对象,可以将对象序列化到xml流中或从xml流中反序列化对象,但它创建标记的方式与xml文件不同。也许您可以创建一个自定义序列化程序,它将根据您的规则进行操作。
在这里你可以找到一个例子。(它使用xsd文件来设置序列化规则)