コード例 #1
0
 public void AddRegistration(Type abstraction, ObjectDef definition, bool isSingleton)
 {
     _registrations.Add(
         builder =>
     {
         var registration = new ObjectDefRegistration(builder, definition, isSingleton, false);
         registration.Register(abstraction);
     });
 }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
            }
        }