private static IEnumerable <IRegistrationModule> CreateModulesFromTypes(IEnumerable <Type> moduleTypes) { List <IRegistrationModule> result = new List <IRegistrationModule>(); foreach (var item in moduleTypes) { object instance = Activator.CreateInstance(item); IRegistrationModule module = instance as IRegistrationModule; if (module != null) { result.Add(module); } } return(result); }
/// <summary> /// Finds all the IRegistration modules and registers them /// </summary> /// <param name="container"></param> public void RegisterApplication(UnityContainer container) { var moduleType = typeof(IRegistrationModule); var types = AppDomain.CurrentDomain.GetAssemblies() .SelectMany(s => s.GetTypes()) .Where(p => moduleType.IsAssignableFrom(p) && !p.IsInterface); List <IRegistrationModule> list = new List <IRegistrationModule>(); foreach (var type in types) { IRegistrationModule module = Create(type); list.Add(module); } list.ForEach(m => m.Register(container)); }
public static void RegisterModule(this IManualObjectRegistrar registrar, IRegistrationModule module) { module.Register(registrar); registrar.CommitRegistrations(); // TODO: Make sure we don't commit registration duplicatedly }