public void Remove(ICatchAllEventHandler handler)
 {
     if (disposing || disposed)
     {
         return;
     }
     CatchAllEventHandlers.Remove(handler);
 }
 public void Dispose()
 {
     try
     {
         disposing = true;
         CatchAllEventHandlers?.Clear();
         foreach (var dic in Handlers.Values)
         {
             dic?.Clear();
         }
         Handlers?.Clear();
     }
     catch
     {
         // ignored
     }
     finally
     {
         disposed = true;
     }
 }