private void Dispose(bool disposing)
        {
            if (!disposing || _disposed)
            {
                return;
            }

            _disposed = true;
            _weakAction.Dispose();
            _messenger.RemoveRegistration(this);
            _messenger = null;
        }
 public void RemovedFromMessenger()
 {
     _messenger = null;
     _disposed  = true;
 }
 public MessengerRegistration(MessengerImpl messenger, object receiver, Action <TMessage> action,
                              KeepOwnerAliveMode keepOwnerAliveMode)
 {
     _messenger  = messenger;
     _weakAction = new WeakAction <TMessage>(receiver, action, keepOwnerAliveMode);
 }