1、添加 NuGet 包
Microsoft.Extensions.Configuration
2、通過注入獲取 Configuration
注意:注入獲取的必須提前在 StartUp 里面提前注冊
public class Startup { public IConfiguration Configuration { get; } public StartupAutofacIdp(IConfiguration configuration, IHostingEnvironment env) { Configuration = configuration; } public void ConfigureServices(IServiceCollection services) { //TestConfig 對應json文件 的節點 services.Configure<TestConfig>(Configuration.GetSection("ConnectionStrings")); } } public class TestConfig { public string Default { get; set; } public string Line { get; set; } } appsetting.json { "ConnectionStrings": { "Default": "Data Source=.; Initial Catalog=xiaoer; User Id=sa; Password=123456;", "Line": "Data Source=.; Initial Catalog=xiaoer; User Id=sa; Password=1234567890;" }, "Logging": { "LogLevel": { "Default": "Warning" } }, "AllowedHosts": "*" }
public class HomeController : Controller { private TestConfig testConfig; public IConfiguration Configuration; public HomeController(IOptions<TestConfig> options, IConfiguration configuration) { testConfig = options.Value; Configuration = configuration; } public IActionResult Index() { /* * 2種方式 * 1、通過 StartUp 提前注冊實體類訪問 * 2、使用 Configuration 實例訪問 */ TestConfig test = new TestConfig(); Configuration.GetSection("ConnectionStrings").Bind(test); ViewBag.Test = test; return View(testConfig); } }
3、通過加載對應的文件綁定 Configuration 實例
public class Config { /// <summary> /// appsettings.json 文件 也可以是任何自定義的 json 文件 /// </summary> private static IConfiguration Configuration; static Config() { if (Configuration == null) { var builder = new ConfigurationBuilder(); builder.SetBasePath(Directory.GetCurrentDirectory()); builder.AddJsonFile("appsettings.json", false, true); Configuration = builder.Build(); } } }