private void ApplyDynamicConfigurators(TypesList typesList) { var configurationSet = new ServiceConfigurationSet(); var builder = new ServiceConfigurationBuilder<object>(configurationSet); foreach (var c in dynamicConfigurators) { var targetTypes = c.BaseType == null ? typesList.Types.ToList() : typesList.InheritorsOf(c.BaseType); foreach (var t in targetTypes) { if (configurations.ContainsKey(t)) continue; try { c.ConfigureAction(t, builder); } catch (Exception e) { const string messageFormat = "exception invoking [{0}] for [{1}]"; throw new SimpleContainerException(string.Format(messageFormat, c.Description, t.FormatName()), e); } if (configurationSet.IsEmpty()) continue; if (!string.IsNullOrEmpty(c.Description)) configurationSet.SetDefaultComment(c.Description); configurations.Add(t, configurationSet); configurationSet = new ServiceConfigurationSet(); builder = new ServiceConfigurationBuilder<object>(configurationSet); } } }
public ServiceConfigurationSet GetConfigurationSet(Type type) { ServiceConfigurationSet result; if (!configurations.TryGetValue(type, out result)) configurations.Add(type, result = new ServiceConfigurationSet()); return result; }