ASP.NET Core 类库中取读配置文件 appsettings.json

  • A+
所属分类:.NetCore

ASP.NET Core 类库中取读配置文件 appsettings.json

首先引用NuGet包

  1. Microsoft.Extensions.Configuration  
  2. Microsoft.Extensions.Configuration.Json  
  3. Microsoft.Extensions.DependencyInjection  
  4. Microsoft.Extensions.Options  
  5. Microsoft.Extensions.Options.ConfigurationExtensions  

我们先来看一下appsettings.json文件

  1. {  
  2.   "Logging": {  
  3.     "IncludeScopes"false,  
  4.     "Debug": {  
  5.       "LogLevel": {  
  6.         "Default""Warning"  
  7.       }  
  8.     },  
  9.     "Console": {  
  10.       "LogLevel": {  
  11.         "Default""Warning"  
  12.       }  
  13.     }  
  14.   },  
  15.   "AppSupportDatabase": {  
  16.     "ConnectionString""server=.;initial catalog=TestDB;user id=sa;password=123",  
  17.     "ProviderName""System.Data.SqlClient"  
  18.   }  
  19. }  

我们想取ProviderName怎么办呢?首先新建ConfigManager

  1. public class ConfigManager  
  2.   {  
  3.       public string ProviderName { getset; }  
  4.   
  5.       public string ConnectionString { getset; }  
  6.   }  

GetAppsettings方法

  1. public T GetAppsettings<T>(string key) where T : classnew()  
  2.  {  
  3.      string keyDir = System.IO.Directory.GetCurrentDirectory();  
  4.   
  5.      IConfiguration config = new ConfigurationBuilder()  
  6.          .SetBasePath(keyDir)  
  7.          .Add(new JsonConfigurationSource { Path = "appsettings.json", ReloadOnChange = true })  
  8.          .Build();  
  9.      var appconfig = new ServiceCollection()  
  10.          .AddOptions()  
  11.          .Configure<T>(config.GetSection(key))  
  12.          .BuildServiceProvider()  
  13.          .GetService<IOptions<T>>()  
  14.          .Value;  
  15.      return appconfig;  
  16.  }  

调用例子

  1. GetAppsettings<ConfigManager>("AppSupportDatabase").ProviderName  
钰玺

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: