/// <summary>
 /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
 /// </summary>
 public void Dispose()
 {
     if (_referenceManagerScopeManager != null)
     {
         _referenceManagerScopeManager.Dispose();
         _referenceManagerScopeManager = null;
     }
 }
        /// <summary>
        /// Disposes the managed resources.
        /// </summary>
        protected override void DisposeManaged()
        {
            base.DisposeManaged();

            if (_scopeManager != null)
            {
                _scopeManager.Dispose();
                _scopeManager = null;
            }

            Uninitialize();
        }
        /// <summary>
        /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
        /// </summary>
        public void Dispose()
        {
            if (_typeStackScopeManager != null)
            {
                _typeStackScopeManager.Dispose();
                _typeStackScopeManager = null;
            }

            if (_referenceManagerScopeManager != null)
            {
                _referenceManagerScopeManager.Dispose();
                _referenceManagerScopeManager = null;
            }

            if (_serializableToken != null)
            {
                _serializableToken.Dispose();
                _serializableToken = null;
            }
        }