You could just flag the Disposal in Dispose(). After all Disposal isn't a destructor - the object still exists.
so:
class AContainer : IDisposable
{
bool _isDisposed=false;
public void Dispose()
{
if (!_isDisposed)
{
// dispose
}
_isDisposed=true;
}
}
add this to your other class, too.