public static IAutoRegistration ConfigureSelfAutoRegistration(this UnityContainerExtension parent)
        {
            Contract.Assert(parent != null);
            Contract.Assert(parent.Container != null);

            return(parent.Container.ConfigureSelfAutoRegistration(parent.GetType()));
        }
        public static IAutoRegistration ConfigureSelfAutoRegistration(this UnityContainerExtension parent, params Type[] types)
        {
            Contract.Assert(parent != null);
            Contract.Assert(parent.Container != null);

            var list = new List <Type>(types)
            {
                parent.GetType()
            };

            return(parent.Container.ConfigureSelfAutoRegistration(list.ToArray()));
        }
        /// <summary>
        /// Add a new extension to the given <paramref name="container"/>, only
        /// if the extension hasn't already been added to the container.
        /// </summary>
        /// <param name="container">The container to add the extension to.</param>
        /// <param name="extension">The extension object.</param>
        /// <returns><paramref name="container"/></returns>
        public static IUnityContainer AddExtensionIfNotPresent(this IUnityContainer container, UnityContainerExtension extension)
        {
            if (container == null)
            {
                throw new ArgumentNullException("container");
            }
            if (extension == null)
            {
                throw new ArgumentNullException("extension");
            }

            Type extensionType = extension.GetType();

            if (container.Configure(extensionType) == null)
            {
                container.AddExtension(extension);
            }
            return(container);
        }
示例#4
0
 public IUnityContainer AddExtension(UnityContainerExtension extension)
 {
     ConfigActions.Add(ConfigurationActionRecord.AddExtensionAction(extension.GetType()));
     return(this);
 }