A>пусть клиенты вызывают Dispose на здоровье, а ты поставь собственный счетчик ссылок на ресурс и прибивай ресурс в вызове последнего Dispos`а.
Тогда нужно абязать клиентов вызывать некий AddRef, парный Dispose(). Ведь клиенты могут передавть ссылку на ресурс друг гругу. Вообще-то это криво: возвращяться к глючному ручному подсчёту ссылок в стиле "COM без смарт-указателей".
A>PS A>и не путай Dispose с деструктором.
С чего ты взял что я не путаю. Если следовать общепринятой семантике Dispose, то этот метод должен перевести объект в некое предсмертное состояние, в котором при любом вызов приводит к ObjectDisposedException. Это вряд ли понравится остальным клиентам.
A>PS PS A>а между удалением последней ссылки на объект и его автоматической сборкой может пройти уйма времени.
Я об этом и писал: "GC может вообще никогда не добраться до объекта Resource".