Exemplo n.º 1
0
        public void Configure(Type concreteComponent, DependencyLifecycle dependencyLifecycle)
        {
            ConfigureComponentAdapter config =
                container.ResolveAll <ConfigureComponentAdapter>().Where(x => x.ConfiguredType == concreteComponent).
                FirstOrDefault();

            if (config == null)
            {
                IEnumerable <Type> interfaces = GetAllServiceTypesFor(concreteComponent);
                config = new ConfigureComponentAdapter(container, concreteComponent);
                container.RegisterInstance(Guid.NewGuid().ToString(), config);

                container.RegisterType(concreteComponent, concreteComponent, GetLifetimeManager(dependencyLifecycle));

                foreach (Type t in interfaces)
                {
                    if (typesWithDefaultInstances.Contains(t))
                    {
                        container.RegisterType(t, concreteComponent, Guid.NewGuid().ToString(), GetLifetimeManager(dependencyLifecycle));
                    }
                    else
                    {
                        container.RegisterType(t, concreteComponent, GetLifetimeManager(dependencyLifecycle));
                        typesWithDefaultInstances.Add(t);
                    }
                }
            }
        }
Exemplo n.º 2
0
        public void ConfigureProperty(Type concreteComponent, string property, object value)
        {
            ConfigureComponentAdapter config =
                container.ResolveAll <ConfigureComponentAdapter>().Where(x => x.ConfiguredType == concreteComponent).
                First();

            config.ConfigureProperty(property, value);
        }