Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        /// <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
 }