protected virtual void Dispose(bool disposing)
        {
            if (!_disposed)
            {
                if (disposing)
                {
                    _mResource.Close();
                    Console.WriteLine("Closed managed resource in ResourceHolderBase.");
                }

                _uResource.Close();
                Console.WriteLine("Closed unmanaged resource in ResourceHolderBase.");

                _disposed = true;
            }
            else
            {
                Console.WriteLine("ResourceHolderBase.Dispose(): an attempt to call again!!");
            }
        }
        protected override void Dispose(bool disposing)
        {
            if (!_disposed)
            {
                if (disposing)
                {
                    _mResourceOwn.Close();
                    Console.WriteLine("Closed managed resource in ResourceHolderDerived.");
                }

                _uResourceOwn.Close();
                Console.WriteLine("Closed unmanaged resource in ResourceHolderDerived.");

                _disposed = true;

                base.Dispose(disposing);
            }
            else
            {
                Console.WriteLine("ResourceHolderDerived.Dispose(): an attempt to call again!");
            }
        }