/// <summary>
        /// Add a module to the container.
        /// </summary>
        /// <param name="builder">The builder to register the module with.</param>
        /// <typeparam name="TModule">The module to add.</typeparam>
        /// <exception cref="ArgumentNullException">
        /// Thrown if <paramref name="builder"/> is <see langword="null"/>.
        /// </exception>
        /// <returns>
        /// The <see cref="IModuleRegistrar"/> to allow
        /// additional chained module registrations.
        /// </returns>
        public static IModuleRegistrar RegisterModule <TModule>(this ContainerBuilder builder)
            where TModule : IModule, new()
        {
            if (builder == null)
            {
                throw new ArgumentNullException(nameof(builder));
            }

            var registrar = new ModuleRegistrar(builder);

            return(registrar.RegisterModule <TModule>());
        }
Example #2
0
        public void RegisterModule_ChainsModuleRegistrations()
        {
            var builder   = new ContainerBuilder();
            var registrar = new ModuleRegistrar(builder);

            registrar.RegisterModule(new ModuleA()).RegisterModule(new ModuleB());
            var container = builder.Build();
            var strings   = container.Resolve <IEnumerable <string> >();

            Assert.Contains("foo", strings);
            Assert.Contains("bar", strings);
        }
Example #3
0
        /// <summary>
        /// Add a module to the container.
        /// </summary>
        /// <param name="builder">The builder to register the module with.</param>
        /// <param name="module">The module to add.</param>
        /// <exception cref="ArgumentNullException">
        /// Thrown if <paramref name="builder"/> or <paramref name="module"/> is <see langword="null"/>.
        /// </exception>
        /// <returns>
        /// The <see cref="IModuleRegistrar"/> to allow
        /// additional chained module registrations.
        /// </returns>
        public static IModuleRegistrar RegisterModule(this ContainerBuilder builder, IModule module)
        {
            if (builder == null)
            {
                throw new ArgumentNullException(nameof(builder));
            }
            if (module == null)
            {
                throw new ArgumentNullException(nameof(module));
            }

            var registrar = new ModuleRegistrar(builder);

            return(registrar.RegisterModule(module));
        }
Example #4
0
        public void RegisterModule_RequiresModule()
        {
            var registrar = new ModuleRegistrar(new ContainerBuilder());

            Assert.Throws <ArgumentNullException>(() => registrar.RegisterModule(null));
        }