After reading the answer here, I decided to mark my class as sealed in order to simplify the IDisposable implementation. Why does sealed affect the implementation of IDispo
Making a class sealed means that there can be no classes derived from it. That means that the implementation of IDisposable doesn't need to take into account the behavior (or misbehavior) of derived classes.