.Net Core Series: reading the configuration file

1. Console Application

   Create a new console application, add two Package:

Install-Package Microsoft.Extensions.Configuration
Install-Package Microsoft.Extensions.Configuration.Json

1.1 single configuration file

  Create a profile appsettings.json:

{
  "Data": "10000",
  "ConnectionStrings": {
    "DevContext": "开发库",
    "ProdContext": "生产库"
  }
}

  Reads the configuration file:

using System;

using System.IO;
using Microsoft.Extensions.Configuration;

namespace Libing.Core.ConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            var builder = new ConfigurationBuilder()
                .SetBasePath(Directory.GetCurrentDirectory())
                .AddJsonFile("appsettings.json");
            var config = builder.Build();

            Console.WriteLine(config["Data"]); // Configure button 
            Console.WriteLine (config.GetSection ( " the ConnectionStrings: DevContext " ) .Value); // hierarchical key 
        } 
    } 
}

  ConfigurationRoot to create objects through ConfigurationBuilder object, reads the configuration file.

  SetBasePath: set up a profile base path

  AddJsonFile: Add read Json file

var builder = new ConfigurationBuilder()
    .SetBasePath(Directory.GetCurrentDirectory())
    .AddJsonFile("appsettings.json");

  Optional modify configuration files and automatically load the settings:

var builder = new ConfigurationBuilder()
    .SetBasePath(Directory.GetCurrentDirectory())
    .AddJsonFile("appsettings.json");

  Configuration key conventions:

  (1) key is not case-sensitive. For example, ConnectionString connectionstring and are considered equivalent key.

  (2) hierarchical key delimiter colon (:)

More than 1.2 profiles

  AddJsonFile: Adding multiple profiles.

var builder = new ConfigurationBuilder()
    .SetBasePath(Directory.GetCurrentDirectory())
    .AddJsonFile("appsettings.json")
    .AddJsonFile("appsettings.Development.json", optional: true, reloadOnChange: true);
{
  "Data": "10000",
  "ConnectionStrings": {
    "DefaultContext": "默认库"
  }
}
appsettings.json
{
  "Data": "10000",
  "ConnectionStrings": {
    "DefaultContext": "开发库"
  }
}
appsettings.Development.json
using System;

using System.IO;
using Microsoft.Extensions.Configuration;

namespace Libing.Core.ConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            var builder = new ConfigurationBuilder()
                .SetBasePath(Directory.GetCurrentDirectory())
                .AddJsonFile("appsettings.json")
                .AddJsonFile("appsettings.Development.json");
            var config =builder.Build (); 

            Console.WriteLine (config.GetConnectionString ( " the DefaultContext " )); // Output: Development Library 
        } 
    } 
}
using System;

using System.IO;
using Microsoft.Extensions.Configuration;

namespace Libing.Core.ConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            var builder = new ConfigurationBuilder()
                .SetBasePath(Directory.GetCurrentDirectory())
                .AddJsonFile("appsettings.Development.json")
                .AddJsonFile("appsettings.json");
            var config =builder.Build (); 

            Console.WriteLine (config.GetConnectionString ( " the DefaultContext " )); // Output: default library 
        } 
    } 
}

  The same configuration key, select the file to read (AddJsonFile) added last.

  To add a file to read the configuration information of all, you can traverse ConfigurationRoot the Providers property.

using System;

using System.IO;
using Microsoft.Extensions.Configuration;

namespace Libing.Core.ConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            var builder = new ConfigurationBuilder()
                .SetBasePath(Directory.GetCurrentDirectory())
                .AddJsonFile("appsettings.json")
                .AddJsonFile("appsettings.Development.json");
            var config =builder.Build (); 

            the foreach ( var Provider in config.Providers) 
            { 
                provider.TryGet ( " the ConnectionStrings: the DefaultContext " , OUT  String DefaultContext); 
                Console.WriteLine (DefaultContext); 
            } 

            // Output: default library
             //       Development Library 
        } 
    } 
}

2. API applications

Guess you like

Origin www.cnblogs.com/libingql/p/11326358.html
Recommended