In the standard Dispose(bool disposing) pattern, why must you avoid touching other managed reference fields when disposing is false?
protected virtual void Dispose(bool disposing)
{
if (disposing)
{
// dispose managed objects here
}
// release unmanaged resources here
}