public override IComponentRegistry Register(Type dependencyType, Type implementationType, Lifestyle lifestyle) { Guard.AgainstNull(dependencyType, "dependencyType"); Guard.AgainstNull(implementationType, "implementationType"); base.Register(dependencyType, implementationType, lifestyle); try { switch (lifestyle) { case Lifestyle.Transient: { _registry.For(dependencyType).Use(implementationType).Transient(); break; } default: { _registry.ForSingletonOf(dependencyType).Use(implementationType).Singleton(); break; } } } catch (Exception ex) { throw new TypeRegistrationException(ex.Message, ex); } return(this); }