private static LifetimeManager GetLifeTimeManager(TypeLifeTime typeLifeTime) { switch (typeLifeTime) { case TypeLifeTime.ContainerControlled: { return(new ContainerControlledLifetimeManager()); } case TypeLifeTime.ExternallyControlled: { return(new ExternallyControlledLifetimeManager()); } case TypeLifeTime.Hierarchical: { return(new HierarchicalLifetimeManager()); } case TypeLifeTime.PerResolve: { return(new PerResolveLifetimeManager()); } case TypeLifeTime.PerThread: { return(new PerThreadLifetimeManager()); } case TypeLifeTime.Transient: { return(new TransientLifetimeManager()); } default: { throw new LifetimeManagerNotSupportedException(typeLifeTime); } } }
public LifetimeManagerNotSupportedException(TypeLifeTime typeLifeTime) : base($"No life time manager exists for the specified typeLifeTime: {typeLifeTime}") { }
public DIPair(Type implementedInterfaceType, Type concreteType, TypeLifeTime lifeTime) { ImplementedInterfaceType = implementedInterfaceType; ConcreteType = concreteType; lifeTime = LifeTime; }