public static ILifetimeStrategy Get(Lifetime lifetime, INCopDependencyResolver container) { switch (lifetime) { case Lifetime.None: return defaultLifetimeStrategy; case Lifetime.PerThread : return PerThreadLifetimeStrategy.Instance; case Lifetime.HttpRequest: return HttpRequestLifetimeStrategy.Instance; case Lifetime.Hierarchy: return new HierarchySingletonLifetimeStrategy(); case Lifetime.Container: return new ContainerSingletonLifetimeStrategy(container); case Lifetime.HybridRequest: return hybridRequestLifetimeStrategy; default: throw new ResolutionException(Resources.UnknownLifetime); } }
public static ILifetimeStrategy Get(Lifetime lifetime, INCopDependencyResolver container) { switch (lifetime) { case Lifetime.None: return(defaultLifetimeStrategy); case Lifetime.PerThread: return(PerThreadLifetimeStrategy.Instance); case Lifetime.HttpRequest: return(HttpRequestLifetimeStrategy.Instance); case Lifetime.Hierarchy: return(new HierarchySingletonLifetimeStrategy()); case Lifetime.Container: return(new ContainerSingletonLifetimeStrategy(container)); case Lifetime.HybridRequest: return(hybridRequestLifetimeStrategy); default: throw new ResolutionException(Resources.UnknownLifetime); } }
internal ServiceEntry CloneFor(INCopDependencyResolver container) { return(new ServiceEntry { Scope = Scope, Owner = this.Owner, Container = container, Factory = this.Factory, LifetimeStrategy = Scope.ToStrategy(container) }); }
public static ILifetimeStrategy Get(ReuseScope scope, INCopDependencyResolver container) { switch (scope) { case ReuseScope.None: return(defaultLifetimeStrategy); case ReuseScope.Hierarchy: return(new HierarchySingletonStrategy()); case ReuseScope.Container: return(new ContainerSingletonStrategy(container)); default: throw new ResolutionException(Resources.UnknownReuseScope); } }
public ContainerSingletonLifetimeStrategy(INCopDependencyResolver container) { this.container = container; }
public static ILifetimeStrategy ToStrategy(this Lifetime lifetime, INCopDependencyResolver container) { return LifetimeStrategyFactory.Get(lifetime, container); }
internal static ILifetimeStrategy ToStrategy(this ReuseScope scope, INCopDependencyResolver container) { return(LifetimeStrategyFactory.Get(scope, container)); }
public static ILifetimeStrategy ToStrategy(this Lifetime lifetime, INCopDependencyResolver container) { return(LifetimeStrategyFactory.Get(lifetime, container)); }
private TService CloneAndResolve <TService>(ServiceKey key, ServiceEntry entry, INCopDependencyResolver container, Action <ServiceKey, ServiceEntry> registry, Func <TService> factory) { ServiceEntry clonedEntry = entry.CloneFor(container); registry(key, clonedEntry); var context = new ResolveContext <TService> { Key = key, Factory = factory, Entry = clonedEntry, Registry = registry, Container = container }; return((TService)clonedEntry.LifetimeStrategy.Resolve <TService>(context)); }