public void AddRegistration(Type abstraction, ObjectDef definition, bool isSingleton) { _registrations.Add( builder => { var registration = new ObjectDefRegistration(builder, definition, isSingleton, false); registration.Register(abstraction); }); }
private void UpdateRegistry(Type abstraction, ObjectDef definition) { var builder = GetContainerBuilder(); var registration = new ObjectDefRegistration(builder, definition, false, false); registration.Register(abstraction); builder.Update(_context.ComponentRegistry); }
void IDependencyVisitor.List(ListDependency dependency) { var items = dependency.Items.ToArray(); // Register the type-based items. foreach (ObjectDef definition in items.Where(def => def.Value == null)) { var registration = new ObjectDefRegistration(_builder, definition, false, true); registration.Register(definition.Type); } SetDependencyList(dependency.DependencyType, dependency.ElementType, items); }
void IDependencyVisitor.Configured(ConfiguredDependency dependency) { if (dependency.Definition.Value != null) { SetDependencyValue(dependency.DependencyType, dependency.Definition.Value); } else { var registration = new ObjectDefRegistration(_builder, dependency.Definition, false, true); registration.Register(dependency.DependencyType); SetDependencyType(dependency.DependencyType, dependency.Definition.Name); } }