Skip to content

Instantly share code, notes, and snippets.

@configureappio
Created April 30, 2018 14:22
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save configureappio/d4ad9a95a1283f66eecdd982dc696085 to your computer and use it in GitHub Desktop.
Save configureappio/d4ad9a95a1283f66eecdd982dc696085 to your computer and use it in GitHub Desktop.
Example of registering multiple implementations of IConfigurationOptions<TOptions>
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.AddSingleton<IDateTimeResolver, DateTimeResolver>();
services.AddMvc();
services.AddOptions();
services.Configure<MySettings>(Configuration.GetSection("MySettings"));
services.AddSingleton<IConfigureOptions<MySettings>, ConfigureMySettingsWithHello>();
services.AddSingleton<IConfigureOptions<MySettings>, ConfigureMySettingsWithWorld>();
services.AddSingleton<IConfigureOptions<MySettings>, ConfigureMySettingsWithDateAndTime>();
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseBrowserLink();
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
}
app.UseStaticFiles();
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment