Key assumptions:
- A service it's just a aspnetcore startup service.
- A service can contains 1 or multiple children services (per path)
- A service can be easily pluggable in any other project.
Like any other aspnetcore, a startup structure.
public class MyCompanyService1 : Service
{
//Your constructor in your way.
//This contructor is a ready configuration access template
public MyCompanyCoursesService(IHostingEnvironment environment, IConfiguration configuration, ILogger<Service> logger = null) : base(environment, configuration, logger)
{
}
public override void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
//...
}
public override void Configure(IApplicationBuilder app)
{
//...
app.UseMvc();
}
}
and in the host builder just use this service in UseStartup, like this:
public class Program
{
public static void Main(string[] args)
{
CreateWebHostBuilder(args).Build().Run();
}
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<MyCompanyService1>();
}
Just it. Run and you have a beautiful default start page (customizable):