public void Run() { _container.RegisterType <IPoolContext, PoolContext>(); var assemblies = AssemblyHelpers.GetAssemblies(); foreach (var assembly in assemblies) { _container.RegisterAssembly(assembly, type => typeof(IPool).IsAssignableFrom(type)); } }
/// <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)); } } }
/// <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); } } } }