示例#1
0
        /// <summary>
        /// Registers a container extension.
        /// </summary>
        /// <param name="extension">The extension to be registered.</param>
        /// <returns>The injection container for chaining.</returns>
        public IInjectionContainer RegisterExtension(IContainerExtension extension)
        {
            if (this.extensions == null)
            {
                this.extensions = new List <IContainerExtension>();
            }

            this.extensions.Add(extension);
            extension.OnRegister(this);

            return(this);
        }
示例#2
0
        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);
        }