예제 #1
0
        public void Run()
        {
            _container.RegisterType <IPoolContext, PoolContext>();

            var assemblies = AssemblyHelpers.GetAssemblies();

            foreach (var assembly in assemblies)
            {
                _container.RegisterAssembly(assembly, type => typeof(IPool).IsAssignableFrom(type));
            }
        }
예제 #2
0
        /// <summary>
        /// 注册拦截方法
        /// </summary>
        public static void RegisterService()
        {
            AssemblyHelpers _assemblyHelper = new AssemblyHelpers();
            var             assemblys       = _assemblyHelper.GetAssemblies();

            _builder.RegisterType <TransactionInterceptor>();
            foreach (var assembly in assemblys)
            {
                var contains = assembly.GetCustomAttributes().Where(type => type.Equals(typeof(TransactionHandlerAttribute)));
                if (contains.Count() > 0)
                {
                    _builder.RegisterAssemblyTypes(assembly).AsImplementedInterfaces()
                    .EnableInterfaceInterceptors().InterceptedBy(typeof(TransactionInterceptor));
                }
            }
        }
예제 #3
0
        /// <summary>
        /// 加载数据库实体
        /// </summary>
        /// <param name="modelBuilder"></param>
        private void LoadEntities(ModelBuilder modelBuilder)
        {
            AssemblyHelpers _assemblyHelper = new AssemblyHelpers();
            var             assemblys       = _assemblyHelper.GetAssemblies();

            foreach (var assembly in assemblys)
            {
                var types          = assembly.GetTypes();
                var assignTypeFrom = typeof(IBaseModel <>);
                var currentTypes   = types.Where(t => t.IsClass && !t.IsGenericType && !t.IsAbstract && (assignTypeFrom.IsAssignableFrom(t) ||
                                                                                                         (assignTypeFrom.IsGenericTypeDefinition && _assemblyHelper.DoesTypeImplementOpenGeneric(t, assignTypeFrom))) &&
                                                 !t.IsInterface);
                foreach (var type in currentTypes)
                {
                    if (modelBuilder.Model.FindEntityType(type) == null)
                    {
                        modelBuilder.Model.AddEntityType(type);
                    }
                }
            }
        }