private QuickInjectContainer(QuickInjectContainer parent) { this.Registering += (sender, args) => { }; this.RegisteringInstance += (sender, args) => { }; this.ChildContainerCreated += (sender, args) => { }; this.parentContainer = parent ?? throw new ArgumentNullException(nameof(parent)); this.extensionImpl = this.parentContainer.extensionImpl; this.perfectHashProvider = this.parentContainer.perfectHashProvider; this.perfectHashProvider.AddContainer(this); this.compilationMonitor = this.parentContainer.compilationMonitor; this.resolutionMonitor = this.parentContainer.resolutionMonitor; this.RegisterInstance(IQuickInjectContainerType, this); }
public QuickInjectContainer(ICompilationMonitor compilationMonitor, IResolutionMonitor resolutionMonitor) { this.compilationMonitor = compilationMonitor; this.resolutionMonitor = resolutionMonitor; // Lifetime managers is empty at QuickInject start (across the entire program, not just the instance) lock (StaticLock) { if (lifetimeManagers.Empty) { lifetimeManagers.Add(TransientLifetimeManager.Default); constants.Add(resolutionMonitor); } } compileMethodPointer = CompileMethodInfo.MethodHandle.GetFunctionPointer(); this.InitializeContainer(); }