using System; using System.Collections.Generic; using System.Text; namespace Apewer.Source { /// public abstract class Accessor where T : class, IDatabase, new() { private T _source = null; private bool _disposed = false; /// public Accessor() { } /// protected virtual T Source { get { if (_source == null) _source = new T(); return _source; } } /// public virtual bool Connected { get { return (_source == null) ? false : _source.Online; } } /// public virtual bool Disposed { get { return _disposed; } } /// public virtual void Close() { if (_source == null) return; _source.Close(); } /// public virtual void Dispose() { if (_source != null) { _source.Dispose(); _source = null; } _disposed = true; } } }