Skip to content

Instantly share code, notes, and snippets.

@mishrsud
Created December 4, 2018 00:49
Show Gist options
  • Save mishrsud/447a72451623955f9295b1b43b41422b to your computer and use it in GitHub Desktop.
Save mishrsud/447a72451623955f9295b1b43b41422b to your computer and use it in GitHub Desktop.
/*
* Use an approach similar to ASP.NET core for generic host in a console application
*/
public interface IStartup
{
void ConfigureServices(
HostBuilderContext hostBuilderContext,
IServiceCollection serviceCollection);
void SetupAppConfiguration(
HostBuilderContext hostBuilderContext,
IConfigurationBuilder configurationBuilder,
string[] commandLineArgs);
}
public class Startup : IStartup
{
public void ConfigureServices(HostBuilderContext hostBuilderContext, IServiceCollection serviceCollection)
{
}
public void SetupAppConfiguration(HostBuilderContext hostBuilderContext, IConfigurationBuilder configurationBuilder,
string[] commandLineArgs)
{
}
}
public static class ConsoleHostBuilderExtensions
{
public static IHostBuilder UseStartup<TStartup>(this IHostBuilder hostBuilder, TStartup startup, string[] commandLineArgs)
where TStartup : IStartup
{
hostBuilder.ConfigureAppConfiguration((hostBuilderContext, configurationBuilder) =>
startup.SetupAppConfiguration(hostBuilderContext, configurationBuilder, commandLineArgs));
hostBuilder.ConfigureServices(startup.ConfigureServices);
return hostBuilder;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment