private void EnqueueSubFeaturesFrom(Feature feature) { foreach (Feature neededFeature in feature.NeededFeatures) { this.featureQueue.Enqueue(neededFeature); } }
private bool NotAlreadyKnownFeature(Feature feature) { return this.features.All(knownFeature => knownFeature.GetType() != feature.GetType()); }
private void AddExtensionsFrom(Feature feature) { foreach (INinjectModule extension in feature.NeededExtensions) { if (this.NotAlreadyKnownExtension(extension)) { this.extensions.Add(extension); } } }
private void AddModulesFrom(Feature feature) { foreach (INinjectModule module in feature.Modules) { if (this.NotAlreadyKnownModule(module)) { this.modules.Add(module); } } }
private void AddFeature(Feature feature) { if (this.NotAlreadyKnownFeature(feature)) { this.features.Add(feature); var factoryFeature = feature as IFactoryFeature; if (factoryFeature != null) { this.factories.Add(factoryFeature.FactoryType); } } }
private void AddDependenciesFrom(Feature feature) { foreach (Dependency dependency in feature.Dependencies) { if (this.NotAlreadyKnownDepedency(dependency)) { this.dependencies.Add(dependency); } } }
private void GetModules(Feature ninjectFeature, FeatureInfo featureInfo) { List<INinjectModule> moduleList = ninjectFeature.Modules.ToList(); foreach (INinjectModule module in moduleList) { FeatureInfo moduleInfo = new FeatureInfo(module.GetType(), null, null, FeatureType.Module); moduleInfo.AddDependency(this.bindingReader.GetBindingInformations(module)); featureInfo.AddDependency(moduleInfo); } }
private void GetNeededExtensions(Feature ninjectFeature, FeatureInfo featureInfo) { List<INinjectModule> neededExtensionList = ninjectFeature.NeededExtensions.ToList(); foreach (INinjectModule neededExtension in neededExtensionList) { FeatureInfo needExtensionInfo = new FeatureInfo(neededExtension.GetType(), null, null, FeatureType.NeededExtensions); needExtensionInfo.AddDependency(this.bindingReader.GetBindingInformations(neededExtension)); featureInfo.AddDependency(needExtensionInfo); } }
private void GetNeededFeatures(Feature ninjectFeature, FeatureInfo featureInfo) { IList<Feature> neededFeatureList = ninjectFeature.NeededFeatures.ToList(); foreach (Feature neededFeature in neededFeatureList) { FeatureInfo needfeatureInfo = ProcessFeatureInstance(neededFeature.GetType()); needfeatureInfo.ChangeFeatureType(FeatureType.NeededFeature); featureInfo.AddDependency(needfeatureInfo); } }