Предположим, есть некий класс A, у которого 2 поля типа FileStream, каким-то образом инициализируются. Если
для внутреннего употребления надо сделать так, чтобы эти FileStream'ы
в определенном порядке деинициализировались, я правильно понимаю, что шаблон Dispose будет ошибочным вариантом, т.к. в момент исполнения A.Dispose эти FileStream'ы уже могут быть закрыты GC?
Как лучше сделать для своего внутреннего употребления?
Если в момент инициализации эти FileStream'ы помещать в какой-то статический список-поле A.List<FileStream>, а в A.Dispose после деинициализации в нужном порядке, убирать их оттуда, это хорошее решение для внутреннего употребления?
public class A : IDisposable
{
public A() { ... }
public FileStream FileStream1;
public FileStream FileStream2;
~A()
{
Dispose();
}
public void Dispose()
{
File.Delete(FileStream1);
FileStream1.Dispose();
FileStream2.Dispose();
}
}