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); } }