private protected virtual bool TryInvokeEventHandler([NotNull] object sender, [NotNull] TEventArgs e) { if (sender == null) { throw new ArgumentNullException(nameof(sender)); } if (e == null) { throw new ArgumentNullException(nameof(e)); } if (_weakEventHandler.NotNull().TryGetTarget(out var target)) { _weakEventHandler.Invoke(target, sender, e); return(true); } return(false); }