public IInjectionContainer RegisterExtension <T>() where T : IContainerExtension { if (this.extensions == null) { this.extensions = new List <IContainerExtension>(); } IContainerExtension extension = this.Resolve <T>(); // Only adds the extension if it's not already added. if (!this.HasExtension(extension.GetType())) { this.extensions.Add(extension); extension.OnRegister(this); } return(this); }