protected override void Dispose(bool disposing)
{
if (Reader == null)
return;
if (disposing) {
lock(Reader) {
_resCache = null;
if (_defaultReader != null) {
_defaultReader.Close();
_defaultReader = null;
}
_caseInsensitiveTable = null;
// Set Reader to null to avoid a race in GetObject.
base.Dispose(disposing);
}
}
else {
// Just to make sure we always clear these fields in the future...
_resCache = null;
_caseInsensitiveTable = null;
_defaultReader = null;
base.Dispose(disposing);
}
}