public void Run(string settingName = "JimuAppServerSettings") { var serverBuilder = new ApplicationServerBuilder(new Autofac.ContainerBuilder(), settingName); _serverBuilderAction?.Invoke(serverBuilder); var app = serverBuilder.Build(); var hostBuilder = new HostBuilder(); var type = typeof(ServerGeneralModuleBase); var hostModules = AppDomain.CurrentDomain.GetAssemblies() .SelectMany(x => x.GetTypes()) .Where(x => x.IsClass && type.IsAssignableFrom(x) && !x.IsAbstract) .Select(x => Activator.CreateInstance(x, app.JimuAppSettings) as ServerGeneralModuleBase) .OrderBy(x => x.Priority); foreach (var module in hostModules) { module.DoHostBuild(hostBuilder, app.Container); } _hostBuilderAction?.Invoke(hostBuilder, app.Container); app.Run(); hostBuilder.Build().Run(); }
public void Run(string settingName = "JimuAppServerSettings") { var containerBuilder = new Autofac.ContainerBuilder(); var serverBuilder = new ApplicationServerBuilder(containerBuilder, settingName); var hostBuilder = new HostBuilder(); IHost host = null; serverBuilder.AddRegister(cb => { var type = typeof(ServerGeneralModuleBase); var hostModules = AppDomain.CurrentDomain.GetAssemblies() .SelectMany(x => x.GetTypes()) .Where(x => x.IsClass && type.IsAssignableFrom(x) && !x.IsAbstract) .Select(x => Activator.CreateInstance(x, serverBuilder.JimuAppSettings) as ServerGeneralModuleBase) .OrderBy(x => x.Priority); foreach (var module in hostModules) { module.DoHostBuild(hostBuilder); } _hostBuilderAction?.Invoke(hostBuilder, containerBuilder); _serverBuilderAction?.Invoke(serverBuilder); hostBuilder.ConfigureServices(sc => { serverBuilder.AddBeforeBuilder(cb => { cb.Populate(sc); }); }); host = hostBuilder.Build(); }); var app = serverBuilder.Build(); app.Run(); host?.Run(); }