public IRegistration CreateRegistration <T>(LifeStrategyEnum lifeStrategy)
        {
            switch (lifeStrategy)
            {
            case LifeStrategyEnum.Singleton:
                return(new SingletonRegistration <T>());

            case LifeStrategyEnum.Transient:
                return(new TransientRegistration(typeof(T)));
            }

            throw new ApplicationException($"No such registration life strategy supported {lifeStrategy}");
        }
 public void Register <TInterface, T>(LifeStrategyEnum lifeStrategy)
     where T : TInterface
 {
     _registrations.Add(typeof(TInterface), _registrationFactory.CreateRegistration <T>(lifeStrategy));
 }
 public void Register <T>(LifeStrategyEnum lifeStrategy)
 {
     _registrations.Add(typeof(T), _registrationFactory.CreateRegistration <T>(lifeStrategy));
 }