internal void Initialize(IBindingProvider bindingProvider, ConverterManager converter, IExtensionRegistry extensionRegistry)
        {
            foreach (var extension in extensionRegistry.GetExtensions <IExtensionConfigProvider>())
            {
                this.AddExtension(extension);
            }

            this._root = bindingProvider;

            // Populate assembly resolution from converters.
            if (converter != null)
            {
                converter.AddAssemblies((type) => this.AddAssembly(type));
            }

            AddTypesFromGraph(bindingProvider as IBindingRuleProvider);
        }