コード例 #1
0
        public List <Module> Register()
        {
            List <Module> modules = new List <Module>()
            {
                Module.RegisterInstance(new DbLiteConfig {
                    ConnectioString = "gfdgfdfsfdsdsa"
                }),
                Module.RegisterType <IRepository <Domain.Models.Cube>, DbLiteRepositoryCube>()
            };
            var typeController  = typeof(CustomControllerBase);
            var typesController = Assembly.GetEntryAssembly().GetTypes().Where(p => typeController.IsAssignableFrom(p) && !p.IsAbstract && !p.IsInterface)?.ToList();

            typesController?.ForEach(it => {
                var module = Module.RegisterType(it, it, it.Name);
                modules.Add(module);
            });
            var typeaggregate = typeof(IRepository <>);

            var typesRepositoryAggregate = AppDomain.CurrentDomain.GetAssemblies().SelectMany(s => s.GetTypes()).Where(p => typeaggregate.IsAssignableFrom(p) && !p.IsAbstract && !p.IsInterface)?.ToList();

            typesRepositoryAggregate?.ForEach(it => {
                var module = Module.RegisterType(it.BaseType, it, it.Name);
                modules.Add(module);
            });
            IoC.GetInstance().RegisterInstance(IoC.GetInstance());
            IoC.GetInstance().RegisterType <IDispatcher, Dispatcher>();
            return(modules);
        }
コード例 #2
0
        public List<Module> Register()
        {
            List<Module> modules = new List<Module>();
            var typeCommandHablder = typeof(ICommandHandler<>);
            var typeEventHandler = typeof(IEventHandler<>);
            var typeRepositoryProjection = typeof(IRepository<>);
            var typeApplicationService = typeof(IApplicationService<>);
            var typesController = Assembly.GetExecutingAssembly().GetTypes().Where(p => (typeEventHandler.IsAssignableFrom(p) || 
            typeCommandHablder.IsAssignableFrom(p) || typeRepositoryProjection.IsAssignableFrom(p)
            || typeApplicationService.IsAssignableFrom(p)) && !p.IsAbstract && !p.IsInterface)?.ToList();

            typesController?.ForEach(it => {
                var module = Module.RegisterType(it.BaseType, it, it.Name);
                modules.Add(module);
            });

            IoC.GetInstance().RegisterType<IQuery<CubeQueryCondition, CubeProjection, long>,CubeQueryProjection>();

            return modules;
        }