假设我有一个班级:
class Class1
{
public List<Class2> Classes;
}
我用XmlSerializer和Class2反序列化创建了一些我应该Dispose的东西。我应该自己处理所有内容还是自动完成?
答案 0 :(得分:2)
经验法则:如果您使用的是实现IDisposable的类,则应确保调用Dispose()方法(可以使用using块)。如果该类没有实现IDisposable而不是.NET将为您处理它。
对于自己的类,如果您的类具有实现IDisposable或不受管理的成员变量,则应实现IDisposable。
答案 1 :(得分:1)
如果Class2有一些东西它应该处理,那么这也意味着Class1有一些东西要处理,Class2s。最安全的做法是让Class1也实现IDisposable并使其dispose方法整理Class2s。
class Class1 : IDisposable
{
public List<Class2> Classes;
public void Dispose()
{
foreach(Class2 c in Classes
{
c.Dispose();
}
}
}