我找不到谷歌博士这个简单问题的简单答案。我有以下序列化功能,我把它放在静态模块中。我的应用程序多次调用它来序列化大量XML文件。这会导致记忆过度增长吗? (忽略代码的文本写入部分)
public static void SerializeToXML<T>(String inFilename,T t)
{
XmlSerializer serializer = new XmlSerializer(t.GetType());
string FullName = inFilename;
TextWriter textWriter = new StreamWriter(FullName);
serializer.Serialize(textWriter, t);
textWriter.Close();
textWriter.Dispose();
}
答案 0 :(得分:4)
这会导致记忆过度增长吗?
没有。不会有成长的记忆。 static
将允许您调用SerializeToXML
方法,而无需创建类的新实例。没别的了。
因此,如果您多次调用此方法,则甚至会使用static
方法缩小内存使用量。
虽然您写了忽略文本写入部分,但您应该将using statement用于非托管资源:
public static void SerializeToXML<T>(String inFilename,T t)
{
XmlSerializer serializer = new XmlSerializer(t.GetType());
string FullName = inFilename;
using (TextWriter textWriter = new StreamWriter(FullName))
{
serializer.Serialize(textWriter, t);
textWriter.Close();
}
}