public void Add <TModel>(IProjector <TModel> projector) where TModel : EventSourcingModel <TModel> { if (_projectors.ContainsKey(typeof(TModel))) { throw new ArgumentException($"Projector for {projector.GetType()} already registered.", nameof(projector)); } _projectors.TryAdd(typeof(TModel), projector); }