protected override void Dispose(bool disposing)
{
if (!m_disposed)
{
try
{
// This will be done regardless of whether the object is finalized or disposed.
if (disposing)
{
// This will be done only when the object is disposed by calling Dispose().
if ((object)m_dataServices != null)
{
m_dataServices.AdapterCreated -= DataServices_AdapterCreated;
m_dataServices.AdapterLoaded -= DataServices_AdapterLoaded;
m_dataServices.AdapterUnloaded -= DataServices_AdapterUnloaded;
m_dataServices.AdapterLoadException -= AdapterLoader_AdapterLoadException;
m_dataServices.Dispose();
}
if ((object)m_replicationProviders != null)
{
m_replicationProviders.AdapterCreated -= ReplicationProviders_AdapterCreated;
m_replicationProviders.AdapterLoaded -= ReplicationProviders_AdapterLoaded;
m_replicationProviders.AdapterUnloaded -= ReplicationProviders_AdapterUnloaded;
m_replicationProviders.AdapterLoadException -= AdapterLoader_AdapterLoadException;
m_replicationProviders.Dispose();
}
if ((object)m_dailyTimer != null)
{
m_dailyTimer.Stop();
m_dailyTimer.Elapsed -= m_dailyTimer_Elapsed;
m_dailyTimer.Dispose();
}
}
}
finally
{
m_disposed = true; // Prevent duplicate dispose.
base.Dispose(disposing); // Call base class Dispose().
}
}
}