Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Conferences
Free Learning
Arrow right icon
Arrow up icon
GO TO TOP
Customizing ASP.NET Core 5.0

You're reading from   Customizing ASP.NET Core 5.0 Turn the right screws in ASP.NET Core to get the most out of the framework

Arrow left icon
Product type Paperback
Published in Jan 2021
Publisher Packt
ISBN-13 9781801077866
Length 160 pages
Edition 1st Edition
Languages
Arrow right icon
Author (1):
Arrow left icon
Jürgen Gutsch Jürgen Gutsch
Author Profile Icon Jürgen Gutsch
Jürgen Gutsch
Arrow right icon
View More author details
Toc

Table of Contents (15) Chapters Close

Preface 1. Chapter 1: Customizing Logging 2. Chapter 2: Customizing App Configuration FREE CHAPTER 3. Chapter 3: Customizing Dependency Injection 4. Chapter 4: Configuring and Customizing HTTPS with Kestrel 5. Chapter 5: Using IHostedService and BackgroundService 6. Chapter 6: Writing Custom Middleware 7. Chapter 7: Content Negotiation Using a Custom OutputFormatter 8. Chapter 8: Managing Inputs with Custom ModelBinders 9. Chapter 9: Creating a Custom ActionFilter 10. Chapter 10: Creating Custom TagHelpers 11. Chapter 11: Configuring WebHostBuilder 12. Chapter 12: Using Different Hosting Models 13. Chapter 13: Working with Endpoint Routing 14. Other Books You May Enjoy

Configuration providers

A configuration provider is an implementation of IConfigurationProvider that is created by a configuration source, which is an implementation of IConfigurationSource. The configuration provider then reads the data from somewhere and provides it via Dictionary.

To add a custom or third-party configuration provider to ASP.NET Core, you will need to call the Add method on ConfigurationBuilder and insert the configuration source. This is just an example:

Host.CreateDefaultBuilder(args)
    .ConfigureWebHostDefaults(webBuilder =>
    {
        
       webBuilder.ConfigureAppConfiguration((builderContext, 
         config) =>
        {
            var env = builderContext.HostingEnvironment;
            config.SetBasePath(env.ContentRootPath);
            config.AddJsonFile(
                "appsettings.json", 
                optional: false, 
                reloadOnChange: true);
            config.AddJsonFile(
                $"appsettings.{env.EnvironmentName}.json",
                optional: true, 
                reloadOnChange: true);
            // add new configuration source
            config.Add(new MyCustomConfigurationSource
            {
                SourceConfig = //configure whatever source
                Optional = false,
                ReloadOnChange = true
            });
            config.AddEnvironmentVariables();
        })
        .UseStartup<Startup>();
    });

Usually, you would create an extension method to add the configuration source more easily:

config.AddMyCustomSource("source", optional: false, 
     reloadOnChange: true);

A really detailed concrete example about how to create a custom configuration provider has been written by Andrew Lock. You can find this in the Further reading section of this chapter.

You have been reading a chapter from
Customizing ASP.NET Core 5.0
Published in: Jan 2021
Publisher: Packt
ISBN-13: 9781801077866
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $19.99/month. Cancel anytime