public ReflectedEventRegistrationSource(EventInfo eventInfo, Action <EventRegistration <T> > unregisterWithDexterity, DictionaryElement target)
        {
            this.eventInfo = eventInfo ?? throw new ArgumentNullException(nameof(eventInfo));
            this.unregisterWithDexterity = unregisterWithDexterity ?? UnregisterViaDictionary;

            this.target = target ?? throw new ArgumentNullException(nameof(target));

            dictionary = target.Dictionary.Extended();
        }
 public DelegatedEventRegistrationSource(Action <T> registerWithDexterity, Action <EventRegistration <T> > unregisterWithDexterity, DictionaryElement target)
 {
     this.registerWithDexterity   = registerWithDexterity ?? throw new ArgumentNullException(nameof(registerWithDexterity));
     this.unregisterWithDexterity = unregisterWithDexterity ?? UnregisterViaDictionary;
     dictionary = target?.Dictionary.Extended() ?? throw new ArgumentNullException(nameof(target));
 }