/// <summary> /// Used to create the correct instance strategy /// </summary> /// <param name="registration">Registration information</param> /// <returns>Strategy to use.</returns> protected virtual IInstanceStrategy CreateStrategy(ComponentRegistration registration) { switch (registration.Lifetime) { case Lifetime.Transient: return(new TransientInstanceStrategy()); case Lifetime.Scoped: return(new ScopedInstanceStrategy(registration.ConcreteType)); case Lifetime.Singleton: return(new SingletonFactoryStrategy()); default: throw new NotSupportedException("Unsupported lifetime: " + registration.Lifetime); } }
/// <summary> /// Used to create the correct instance strategy /// </summary> /// <param name="registration">Registration information</param> /// <returns>Strategy to use.</returns> protected virtual IInstanceStrategy CreateStrategy(ComponentRegistration registration) { switch (registration.Lifetime) { case Lifetime.Transient: return new TransientInstanceStrategy(); case Lifetime.Scoped: return new ScopedInstanceStrategy(registration.ConcreteType); case Lifetime.Singleton: return new SingletonFactoryStrategy(); default: throw new NotSupportedException("Unsupported lifetime: " + registration.Lifetime); } }