/// <summary> /// Initialize to get interface, implementation to register. /// </summary> /// <param name="moduleRegister">The module register.</param> /// <param name="type">The type.</param> public void Initialize(IModuleRegister moduleRegister, TypeInfo type) { if (Equals(type, null)) { return; } moduleRegister.Register(type.GetInterfaces().FirstOrDefault(), type, IsSingleton(type)); }
/// <summary> /// Initialize to get interface, implementation to register. /// </summary> /// <param name="moduleRegister">The module register.</param> /// <param name="type">The type.</param> public void Initialize(IModuleRegister moduleRegister, TypeInfo type) { if (Equals(type, null)) { return; } // Check assembly name include in register assembly names moduleRegister.Register(type.GetInterfaces().FirstOrDefault(), type, this.GetLifetime(type)); }
public StaticModuleResolver AddStaticModule(string module_id, IModuleRegister moduleRegister) { IModuleRegister oldRegister; if (_modRegisters.TryGetValue(module_id, out oldRegister)) { oldRegister.Unload(); } _modRegisters[module_id] = moduleRegister; return(this); }
/// <inheritdoc cref="IModuleManager.UninstallModuleAsync(Assembly)" /> public async Task UninstallModuleAsync(Assembly assembly) { IModuleRegister dependancyRegister = null; Type serviceType = typeof(IModuleRegister); IEnumerable <Type> modulesToRegister = assembly.GetTypes() .Where(type => serviceType.IsAssignableFrom(type) && !type.GetTypeInfo().IsAbstract); foreach (Type implementationType in modulesToRegister) { dependancyRegister = Activator.CreateInstance(implementationType) as IModuleRegister; await dependancyRegister.UninstallAsync(); } }
/// <inheritdoc cref="IModuleManager.InstallModulesAsync" /> public async Task InstallModulesAsync() { IModuleRegister dependancyRegister = null; Type serviceType = typeof(IModuleRegister); IEnumerable <Type> modulesToRegister = KastraAssembliesContext.Instance.GetModuleAssemblies().SelectMany(assembly => assembly.GetTypes()) .Where(type => serviceType.IsAssignableFrom(type) && !type.GetTypeInfo().IsAbstract); foreach (Type implementationType in modulesToRegister) { dependancyRegister = Activator.CreateInstance(implementationType) as IModuleRegister; await dependancyRegister.InstallAsync(_serviceProvider, _viewManager); } }
public void SetUp(IModuleRegister registrar) { registrar.RegisterType <IAccounts, AccountsService>(); registrar.RegisterType <IAuthorizes, AuthorizesService>(); registrar.RegisterType <IAuthTokens, AuthTokensService>(); registrar.RegisterType <ICategories, CategoriesService>(); registrar.RegisterType <ICustomers, CustomersService>(); registrar.RegisterType <IEmployees, EmployeesService>(); registrar.RegisterType <IOrder_Details, Order_DetailsService>(); registrar.RegisterType <IOrders, OrdersService>(); registrar.RegisterType <IProducts, ProductsService>(); registrar.RegisterType <IRegion, RegionService>(); registrar.RegisterType <IShippers, ShippersService>(); registrar.RegisterType <ISuppliers, SuppliersService>(); registrar.RegisterType <ITerritories, TerritoriesService>(); registrar.RegisterType <IJWTService, JWTService>(); }
// TODO Config: 因為有多個資料庫,所以在註冊時指定名稱,讓 Service 可以透過名稱取得正確的 IDataContextAsync 及 IUnitOfWorkAsync。 public void SetUp(IModuleRegister register) { // 建立 重複使用的 register.RegisterDataContext <DbContext, NorthwindContext>("NorthwindContext"); register.RegisterUnitOfWork <IUnitOfWork, UnitOfWork>("NorthwindContext"); register.RegisterRepository <ITrackableRepository <Accounts>, TrackableRepository <Accounts> >("NorthwindContext"); register.RegisterRepository <ITrackableRepository <Authorizes>, TrackableRepository <Authorizes> >("NorthwindContext"); register.RegisterRepository <ITrackableRepository <AuthTokens>, TrackableRepository <AuthTokens> >("NorthwindContext"); register.RegisterRepository <ITrackableRepository <Categories>, TrackableRepository <Categories> >("NorthwindContext"); register.RegisterRepository <ITrackableRepository <Customers>, TrackableRepository <Customers> >("NorthwindContext"); register.RegisterRepository <ITrackableRepository <Employees>, TrackableRepository <Employees> >("NorthwindContext"); register.RegisterRepository <ITrackableRepository <EmployeeTerritories>, TrackableRepository <EmployeeTerritories> >("NorthwindContext"); register.RegisterRepository <ITrackableRepository <OrderDetails>, TrackableRepository <OrderDetails> >("NorthwindContext"); register.RegisterRepository <ITrackableRepository <Orders>, TrackableRepository <Orders> >("NorthwindContext"); register.RegisterRepository <ITrackableRepository <Products>, TrackableRepository <Products> >("NorthwindContext"); register.RegisterRepository <ITrackableRepository <Region>, TrackableRepository <Region> >("NorthwindContext"); register.RegisterRepository <ITrackableRepository <Shippers>, TrackableRepository <Shippers> >("NorthwindContext"); register.RegisterRepository <ITrackableRepository <Suppliers>, TrackableRepository <Suppliers> >("NorthwindContext"); register.RegisterRepository <ITrackableRepository <Territories>, TrackableRepository <Territories> >("NorthwindContext"); }
public void SetUp(IModuleRegister register) { // TODO Config: 因為有多個資料庫,所以在註冊時指定名稱,讓 Service 可以透過名稱取得正確的 IDataContextAsync 及 IUnitOfWorkAsync。 // 修改這裡3 register.RegisterDataContext <DbContext, NorthwindDbContext>("Northwind"); register.RegisterUnitOfWork <IUnitOfWorkAsync, UnitOfWork>("Northwind"); // register.RegisterDataContext<IDataContextHelper, NorthwindDbContext>("Northwind"); register.RegisterRepository <IRepositoryAsync <Accounts>, Repository <Accounts> >("Northwind"); register.RegisterRepository <IRepositoryAsync <Authorizes>, Repository <Authorizes> >("Northwind"); register.RegisterRepository <IRepositoryAsync <AuthTokens>, Repository <AuthTokens> >("Northwind"); register.RegisterRepository <IRepositoryAsync <Categories>, Repository <Categories> >("Northwind"); register.RegisterRepository <IRepositoryAsync <Customers>, Repository <Customers> >("Northwind"); register.RegisterRepository <IRepositoryAsync <Employees>, Repository <Employees> >("Northwind"); register.RegisterRepository <IRepositoryAsync <Order_Details>, Repository <Order_Details> >("Northwind"); register.RegisterRepository <IRepositoryAsync <Orders>, Repository <Orders> >("Northwind"); register.RegisterRepository <IRepositoryAsync <Products>, Repository <Products> >("Northwind"); register.RegisterRepository <IRepositoryAsync <Region>, Repository <Region> >("Northwind"); register.RegisterRepository <IRepositoryAsync <Shippers>, Repository <Shippers> >("Northwind"); register.RegisterRepository <IRepositoryAsync <Suppliers>, Repository <Suppliers> >("Northwind"); register.RegisterRepository <IRepositoryAsync <Territories>, Repository <Territories> >("Northwind"); register.RegisterRepository <IRepositoryAsync <NLog_Error>, Repository <NLog_Error> >("Northwind"); }
public void AddStaticModule(string module_id, IModuleRegister register) { FindModuleResolver <StaticModuleResolver>().AddStaticModule(module_id, register); }