public ComponentModel BuildModel(IComponentModelDescriptor[] customContributors)
		{
			var model = new ComponentModel();
			Array.ForEach(customContributors, c => c.BuildComponentModel(kernel, model));
			contributors.ForEach(c => c.ProcessModel(kernel, model));
			Array.ForEach(customContributors, c => c.ConfigureComponentModel(kernel, model));
			return model;
		}
Esempio n. 2
0
        /// <summary>
        ///   Adds the descriptor.
        /// </summary>
        /// <param name = "descriptor">The descriptor.</param>
        /// <returns></returns>
        public ComponentRegistration <TService> AddDescriptor(IComponentModelDescriptor descriptor)
        {
            descriptors.Add(descriptor);
            var componentDescriptor = descriptor as AbstractOverwriteableDescriptor <TService>;

            if (componentDescriptor != null)
            {
                componentDescriptor.Registration = this;
            }
            return(this);
        }
Esempio n. 3
0
        /// <summary>Adds the descriptor.</summary>
        /// <param name="descriptor">The descriptor.</param>
        /// <returns>Current component registration</returns>
        public PropertyResolvingComponentRegistration <TService> AddDescriptor(IComponentModelDescriptor descriptor)
        {
            // handle special condition of someone adding a lifestyle descriptor
            var lifestyleDescriptor = descriptor as LifestyleDescriptor <TService>;

            if (lifestyleDescriptor != null)
            {
                IsLifestyleOverridenWithDescriptor = true;
            }

            m_descriptors.Add(descriptor);

            return(this);
        }
		public ComponentModel BuildModel(IComponentModelDescriptor[] customContributors)
		{
			var model = new ComponentModel();
			Array.ForEach(customContributors, c => c.BuildComponentModel(kernel, model));

			contributors.ForEach(c => c.ProcessModel(kernel, model));

			var metaDescriptors = default(ICollection<IMetaComponentModelDescriptor>);
			Array.ForEach(customContributors, c =>
			{
				c.ConfigureComponentModel(kernel, model);
				var meta = c as IMetaComponentModelDescriptor;
				if (meta != null)
				{
					if (metaDescriptors == null)
					{
						metaDescriptors = model.GetMetaDescriptors(true);
					}
					metaDescriptors.Add(meta);
				}
			});
			return model;
		}
Esempio n. 5
0
 protected ComponentRegistration <S> AddDescriptor(IComponentModelDescriptor descriptor)
 {
     return(registration.AddDescriptor(descriptor));
 }