Example #1
0
        public static void AddModuleOnce(this IExportRegistrationBlock target, IConfigurationModule module)
        {
            lock (_modules)
            {
                var type = module.GetType();

                if (_modules.Contains(type))
                {
                    return;
                }

                if (Attribute.IsDefined(type, typeof(ModuleConfigurationAttribute)) && _config != null)
                {
                    var attribute = (ModuleConfigurationAttribute)Attribute.GetCustomAttribute(type, typeof(ModuleConfigurationAttribute));
                    var section   = _config.GetSection(attribute.SectionName);

                    section.Bind(module);
                }

                _modules.Add(type);
                target.AddModule(module);
            }
        }