public static void HotSetup(this IServiceCollection services, IMvcBuilder mvcBuilder) { _serviceCollection = services; services.AddSingleton <IHttpContextAccessor, HttpContextAccessor>(); services.AddSingleton <IMvcModuleSetup, MvcModuleSetup>(); services.AddSingleton <IServiceCollection>(services); // services.AddScoped<IDbHelper, DbHelper>(); services.AddSingleton <IActionDescriptorChangeProvider>(InBizActionDescriptorChangeProvider.Instance); services.AddSingleton <IReferenceContainer, DefaultReferenceContainer>(); services.AddSingleton <IReferenceLoader, DefaultReferenceLoader>(); services.AddSingleton(InBizActionDescriptorChangeProvider.Instance); // IMvcBuilder mvcBuilder = services.AddMvc(); ServiceProvider provider = services.BuildServiceProvider(); using (IServiceScope scope = provider.CreateScope()) { var contextProvider = new CollectibleAssemblyLoadContextProvider(); var context = contextProvider.Get("DemoPlugin1", services, mvcBuilder.PartManager, scope); if (context != null) { PluginsLoadContexts.Add("DemoPlugin1", context); } } AssemblyLoadContextResoving(); services.Configure <RazorViewEngineOptions>(o => { o.AreaViewLocationFormats.Add("/Modules/{2}/Views/{1}/{0}" + RazorViewEngine.ViewExtension); o.AreaViewLocationFormats.Add("/Views/Shared/{0}.cshtml"); }); services.Replace <IViewCompilerProvider, InBizViewCompilerProvider>(); }
public override void ConfigureServices(ServiceConfigurationContext context) { context.Services.TryAddSingleton <InBizModuleLoader>(); context.Services.TryAddSingleton <IHttpContextAccessor, HttpContextAccessor>(); context.Services.TryAddSingleton <IMvcModuleSetup, MvcModuleSetup>(); context.Services.TryAddSingleton <IReferenceContainer, DefaultReferenceContainer>(); context.Services.TryAddSingleton <IReferenceLoader, DefaultReferenceLoader>(); ServiceProvider provider = context.Services.BuildServiceProvider(); var partManager = context.Services.GetSingletonInstance <ApplicationPartManager>(); using (IServiceScope scope = provider.CreateScope()) { var contextProvider = new CollectibleAssemblyLoadContextProvider(); var pluginContext = contextProvider.Get("DemoPlugin2", context.Services, partManager, scope); PluginsLoadContexts.Add("DemoPlugin2", pluginContext); } AssemblyLoadContextResoving(); Configure <AbpAspNetCoreMvcOptions>(options => { options.ConventionalControllers.Create(typeof(InBizModuleAppliction).Assembly); }); Configure <RazorViewEngineOptions>(o => { o.AreaViewLocationFormats.Add("/Modules/{2}/Views/{1}/{0}" + RazorViewEngine.ViewExtension); o.AreaViewLocationFormats.Add("/Views/Shared/{0}.cshtml"); }); context.Services.Replace <IViewCompilerProvider, InBizViewCompilerProvider>(); }
public void EnableModule(string moduleName) { ServiceProvider provider = CoolCatStartup.Services.BuildServiceProvider(); var contextProvider = new CollectibleAssemblyLoadContextProvider(); using (IServiceScope scope = provider.CreateScope()) { var dataStore = scope.ServiceProvider.GetService <IDataStore>(); var documentation = scope.ServiceProvider.GetService <IQueryDocumentation>(); var context = contextProvider.Get(moduleName, _partManager, scope, dataStore, documentation); PluginsLoadContexts.Add(moduleName, context); context.Enable(); } ResetControllActions(); //if (!PluginsLoadContexts.Any(moduleName)) //{ // ServiceProvider provider = CoolCatStartup.Services.BuildServiceProvider(); // var contextProvider = new CollectibleAssemblyLoadContextProvider(); // using (IServiceScope scope = provider.CreateScope()) // { // var dataStore = scope.ServiceProvider.GetService<IDataStore>(); // var documentation = scope.ServiceProvider.GetService<IQueryDocumentation>(); // var context = contextProvider.Get(moduleName, _partManager, scope, dataStore, documentation); // PluginsLoadContexts.Add(moduleName, context); // } // ResetControllActions(); //} }
public void EnableModule(string moduleName) { if (!PluginsLoadContexts.Any(moduleName)) { ServiceProvider provider = MystiqueStartup.Services.BuildServiceProvider(); var contextProvider = new CollectibleAssemblyLoadContextProvider(); using (IServiceScope scope = provider.CreateScope()) { var dataStore = scope.ServiceProvider.GetService <IDataStore>(); var context = contextProvider.Get(moduleName, _partManager, scope, dataStore); PluginsLoadContexts.Add(moduleName, context); } ResetControllActions(); } }
public void EnableModule(string moduleName) { try { var controller = _partManager.ApplicationParts.FirstOrDefault(p => p.Name == moduleName); if (controller == null) { ServiceProvider provider = _serviceContext.Services.BuildServiceProvider(); var contextProvider = new CollectibleAssemblyLoadContextProvider(); using (IServiceScope scope = provider.CreateScope()) { var context = contextProvider.Get(moduleName, _serviceContext.Services, _partManager, scope); PluginsLoadContexts.Add(moduleName, context); context.Enable(); } ResetControllActions(); } } catch (Exception e) { Console.WriteLine(e); } //if (!PluginsLoadContexts.Any(moduleName)) //{ // ServiceProvider provider = CoolCatStartup.Services.BuildServiceProvider(); // var contextProvider = new CollectibleAssemblyLoadContextProvider(); // using (IServiceScope scope = provider.CreateScope()) // { // var dataStore = scope.ServiceProvider.GetService<IDataStore>(); // var documentation = scope.ServiceProvider.GetService<IQueryDocumentation>(); // var context = contextProvider.Get(moduleName, _partManager, scope, dataStore, documentation); // PluginsLoadContexts.Add(moduleName, context); // } // ResetControllActions(); //} }