我应该使用using关键字或dispose方法与以下代码(因为我打开一个流):
class Program
{
static void Main(string[] args)
{
var x = Deserialize<Dog>(new FileStream(@"C:\Documents and Settings\name\Desktop\demo.xml", FileMode.Open));
}
static T Deserialize<T>(Stream s)
{
XmlSerializer ser = new XmlSerializer(typeof(T));
return (T)ser.Deserialize(s);
}
}
Run Code Online (Sandbox Code Playgroud)
如果没有,你能解释一下为什么不(新的FileStream会自动处理/关闭流)吗?
你应该使用using:
using(var stream = new FileStream(@"C:\path\demo.xml", FileMode.Open))
{
var x = Deserialize<Dog>(stream);
// more code ...
}
Run Code Online (Sandbox Code Playgroud)