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; }