private void FaireRetirerHandler(string nomEvenement, SouscriptionInfo subsARetirer)
 {
     if (subsARetirer != null)
     {
         _handlers[nomEvenement].Remove(subsARetirer);
         if (!_handlers[nomEvenement].Any())
         {
             _handlers.Remove(nomEvenement);
             var typeEvenement = _typeEvenement.SingleOrDefault(e => e.Name == nomEvenement);
             if (typeEvenement != null)
             {
                 _typeEvenement.Remove(typeEvenement);
             }
             TerminerRetirerEvenement(nomEvenement);
         }
     }
 }
        private void FaireAjouterSouscription(Type typeHandler, string nomEvenement, bool estDynamique)
        {
            if (!ExisteSouscriptionPourEvenement(nomEvenement))
            {
                _handlers.Add(nomEvenement, new List <SouscriptionInfo>());
            }

            if (_handlers[nomEvenement].Any(s => s.TypeHandler == typeHandler))
            {
                throw new ArgumentException(
                          $"Le type de Handler {typeHandler.Name} est déjà enregistré pour '{nomEvenement}'", nameof(typeHandler));
            }

            if (estDynamique)
            {
                _handlers[nomEvenement].Add(SouscriptionInfo.Dynamique(typeHandler));
            }
            else
            {
                _handlers[nomEvenement].Add(SouscriptionInfo.Typed(typeHandler));
            }
        }