internal Registration(Type abstractType, Type concreteType, Func<IContainer, object> ctor, Lifecycle lifecycle, InjectionBehaviour injectionBehaviour) { this.AbstractType = abstractType; this.ConcreteType = concreteType; this.Ctor = ctor; this.Lifecycle = lifecycle; this.InjectionBehaviour = injectionBehaviour; }
internal Registration(Type abstractType, Type concreteType, Func <IContainer, object> ctor, Lifecycle lifecycle, InjectionBehaviour injectionBehaviour) { this.AbstractType = abstractType; this.ConcreteType = concreteType; this.Ctor = ctor; this.Lifecycle = lifecycle; this.InjectionBehaviour = injectionBehaviour; }
public void Inject(Type type, object instance, InjectionBehaviour injectionBehaviour) { if (!this.InjectedRegistrations.ContainsKey(type)) this.InjectedRegistrations.Add(type, new List<Registration>()); var registration = new Registration(type, instance?.GetType() ?? type, null, this.Lifecycle, injectionBehaviour); this.InjectedRegistrations[type].Add(registration); this.Insert(registration, type, instance); }
public void Inject(object instance, Type type, Lifecycle lifeCycle, InjectionBehaviour injectionBehaviour) { if (lifeCycle == Lifecycle.Transient) { throw new ArgumentException("You cannot inject an instance as Transient. That doesn't make sense, does it? Think about it..."); } var store = this.GetStore(lifeCycle); lock (store.Mutex) store.Inject(type, instance, injectionBehaviour); }
public void Inject(Type type, object instance, InjectionBehaviour injectionBehaviour) { if (!this.InjectedRegistrations.ContainsKey(type)) { this.InjectedRegistrations.Add(type, new List <Registration>()); } var registration = new Registration(type, instance?.GetType() ?? type, null, this.Lifecycle, injectionBehaviour); this.InjectedRegistrations[type].Add(registration); this.Insert(registration, type, instance); }
public void Inject(object instance, Type type, Lifecycle lifeCycle, InjectionBehaviour injectionBehaviour) { if (lifeCycle == Lifecycle.Transient) throw new ArgumentException("You cannot inject an instance as Transient. That doesn't make sense, does it? Think about it..."); lock (this.mutex) { switch (lifeCycle) { case Lifecycle.Singleton: this.singletonInstanceStore.Inject(type, instance, injectionBehaviour); break; case Lifecycle.HttpContextOrThreadLocal: this.httpContextOrThreadLocalStore.Inject(type, instance, injectionBehaviour); break; case Lifecycle.HttpContextOrExecutionContextLocal: this.httpContextOrExecutionContextLocalStore.Inject(type, instance, injectionBehaviour); break; default: throw new NotSupportedException(); } } }
public void Inject(Type type, object instance, InjectionBehaviour injectionBehaviour) { throw new InvalidOperationException(); }
/// <summary> /// Injects an instance /// </summary> /// <typeparam name="T"></typeparam> /// <param name="container"></param> /// <param name="instance"></param> /// <param name="lifeCycle"></param> /// <param name="injectionBehaviour"></param> public static void Inject <T>(this IContainer container, T instance, Lifecycle lifeCycle = Lifecycle.Singleton, InjectionBehaviour injectionBehaviour = InjectionBehaviour.Default) { container.Inject(instance, typeof(T), lifeCycle, injectionBehaviour); }