このようなものをお探しですか?
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);
}
}