Mam w swoim programie (opartym na GTK#) klasę PreferencesDialog. W niej jest tablica obiektów IPreferencesPage (informacje o podstronach), a w IPreferencesPage mam właściwość Gdk.Pixbuf, na której muszę zrobić Dispose() po zniszczeniu okienka. Jak widać dyrektywy using mogę użyć tylko przy PreferencesDialog. Czy muszę każdy z tych obiektów uczynić IDisposable (czyli IPreferencesPage robi Dispose() na Gdk.Pixbuf, PreferencesDialog iteruje się przez strony i na każdej wywołje Dispose())? Czy jest jakieś bardziej eleganckie rozwiązanie?

Czy mogę robić Dispose() na Gdk.Pixbuf w destruktorze IPreferencesPage? Mogę mieć pewność, że kiedyś się wykona?