У меня есть класс, который использует файловый поток. Он должен закрыть поток, когда приложение завершает работу, поэтому я заставляю класс реализовывать IDisposable.
Этот класс является членом другого класса, который является членом другого класса и т. Д. Вплоть до моего основного приложения.
Должен ли я реализовать IDisposable для всех этих классов?
Что, если в будущем я изменю реализацию файла так, чтобы он закрывал файл после каждой записи? Теперь у меня есть целый набор классов, которые без причины реализуют IDisposable.
Думаю, мне неудобно переносить семантику IDisposable в классы, которые не нуждаются в них, кроме некоторых мелких деталей реализации ниже по цепочке. Есть ли способы обойти это?