是這樣的,你在找什麼?
private T DeserialiseFromXMLFile<T>(string fileLocation)
{
XmlSerializer serializer = new
XmlSerializer(typeof(T));
FileStream fs = new FileStream(fileLocation, FileMode.Open);
XmlReader reader = new XmlTextReader(fs);
return (T) serializer.Deserialize(reader);
}
用途則是:
var foo = DeserialiseFromXMLFile<Foo>("Foo.xml");
如果你不喜歡有明確指定Foo
,可以將方法更改爲
private void DeserialiseFromXMLFile<T>(string fileLocation, out T t)
{
...
t = (T) serializer.Deserialize(reader);
}
,你會叫的
Foo foo;
DeserialiseFromXMLFile("Foo.xml", out foo);
你的代碼,也可以使用using
:
private T DeserialiseFromXMLFile<T>(string fileLocation)
{
var serializer = new XmlSerializer(typeof(T));
using (var fs = new FileStream(fileLocation, FileMode.Open))
{
var reader = new XmlTextReader(fs);
return (T) serializer.Deserialize(reader);
}
}