public ConfigurationRegistry Build(TypesList typesList, ConfigurationRegistry parent)
            {
                ApplyDynamicConfigurators(typesList);
                IConfigurationSource configurationSource = new SimpleConfigurationSource(configurations);

                if (parent != null)
                {
                    foreach (var p in parent.contractUnions)
                    {
                        if (!contractUnions.ContainsKey(p.Key))
                        {
                            contractUnions.Add(p);
                        }
                    }
                    implementationSelectors.AddRange(parent.implementationSelectors);
                    configurationSource = new MergingConfigurationSource(configurationSource, parent.configurations);
                }
                return(new ConfigurationRegistry(configurationSource, contractUnions, implementationSelectors));
            }
 public ConfigurationRegistry Build(TypesList typesList, ConfigurationRegistry parent)
 {
     ApplyDynamicConfigurators(typesList);
     IConfigurationSource configurationSource = new SimpleConfigurationSource(configurations);
     if (parent != null)
     {
         foreach (var p in parent.contractUnions)
             if (!contractUnions.ContainsKey(p.Key))
                 contractUnions.Add(p);
         implementationSelectors.AddRange(parent.implementationSelectors);
         configurationSource = new MergingConfigurationSource(configurationSource, parent.configurations);
     }
     return new ConfigurationRegistry(configurationSource, contractUnions, implementationSelectors);
 }