根据MSDN XmlSerializer Class的“动态生成程序集”部分,使用特定构造函数时,XmlSerializer会产生内存泄漏。我想知道如果
执行以上代码几次后,Visual Studio 2015的诊断工具会显示以下内容: Diagnostic Tools Image 垃圾回收器运行,但似乎动态生成的程序集正在淹没内存。有趣的是要知道
XmlSerializer.FromTypes(Type[])
这个方法会导致内存泄漏吗?
编辑:
当我使用FromTypes
方法时,我遇到了内存问题。因此我开始进行一些调查:
for (int i = 0; i < 1000; i++)
{
DummyObject content = new DummyObject()
{
Age = 29,
Location = "London",
Name = "Pete"
};
XmlSerializer serializer = XmlSerializer.FromTypes(new[] { content.GetType() })[0];
using (TextWriter textWriter = new StreamWriter($@"D:\test\array\{i}.xml"))
{
serializer.Serialize(textWriter, content);
}
}
执行以上代码几次后,Visual Studio 2015的诊断工具会显示以下内容: Diagnostic Tools Image 垃圾回收器运行,但似乎动态生成的程序集正在淹没内存。有趣的是要知道
FromTypes
方法在内部使用哪个构造函数。所以,FromTypes
方法也会产生内存泄漏吗?