洱源网站建设,响应式网站发展,网页设计项目教程,南宁建站模板源码ASP.NET Core 是一个开源的#xff0c;跨平台的#xff0c;精简的模块化框架#xff0c;可用于构建高性能#xff0c;可扩展的web应用程序#xff0c; ASP.NET Core 中的数据配置常用 k-v 的形式存储#xff0c;值得注意的是#xff0c;新的数据配置还支持 层级方式跨平台的精简的模块化框架可用于构建高性能可扩展的web应用程序 ASP.NET Core 中的数据配置常用 k-v 的形式存储值得注意的是新的数据配置还支持 层级方式在这篇文章中我们将会讨论如何在 ASP.NET Core 中去使用。默认创建好的 ASP.Net Core 应用程序中会有两个json配置文件appsettings.json 和 appsettings.Development.json, 如下图所示使用 Json Provider 现在你可以使用 appsettings.json 来存放应用程序的配置数据。比如数据库连接串应用程序特定配置下面的代码片段展示了如何使用 IConfigurationBuilder.AddJsonFile() 将 appsettings.json 添加到配置系统中。public static IWebHostBuilder CreateWebHostBuilder(string[] args) WebHost.CreateDefaultBuilder(args).ConfigureAppConfiguration((hostingContext, config) {var env  hostingContext.HostingEnvironment;config.SetBasePath(env.ContentRootPath);config.AddJsonFile(appsettings.json, optional: false, reloadOnChange: true);}).UseStartupStartup();接下来看一下 appsettings.json 文件的具体内容。
{Logging: {LogLevel: {Default: Warning}},AllowedHosts: *,CustomKeys: {KeyA: ValueA,KeyB: ValueB}
}要想从 appsettings.json 中读取到配置key可以从 IConfiguration 实例中进行读取比如说想要从 Controller 中读取 Configuration只需要通过依赖注入的方式将 Configuration 注入到 Controller 即可如下代码所示public class HomeController : Controller{private readonly ILoggerHomeController _logger;IConfiguration _configuration;public HomeController(ILoggerHomeController logger, IConfiguration configuration){_logger  logger;_configuration  configuration;}}下面的代码片段展示了如何通过 IConfiguration 实例 从 appsettings.json 文件中读取自定义的 CustomerKeys 节。public IActionResult Index(){var keyA  _configuration[CustomKeys:KeyA];var keyB  _configuration[CustomKeys:KeyB];return View();}下面是 HomeController 类的完整代码。public class HomeController : Controller{private readonly ILoggerHomeController _logger;IConfiguration _configuration;public HomeController(ILoggerHomeController logger, IConfiguration configuration){_logger  logger;_configuration  configuration;}public IActionResult Index(){var keyA  _configuration[CustomKeys:KeyA];var keyB  _configuration[CustomKeys:KeyB];return View();}}除了默认生成的 appsettings.json你还可以使用自定义的json文件给应用程序提供特定的配置信息换句话说可以不用将所有的配置信息都放置在 appsettings.json 中比如你可以创建一个自定义的 customsettings.json然后在 CreateWebHostBuilder() 中将其灌入到配置系统中如下代码所示
public static IWebHostBuilder CreateWebHostBuilder(string[] args) WebHost.CreateDefaultBuilder(args).ConfigureAppConfiguration((hostingContext, config) {                var env  hostingContext.HostingEnvironment;string pathOfCommonSettingsFile  env.ContentRootPath;config.SetBasePath(env.ContentRootPath);config.AddJsonFile(appsettings.json, optional: false, reloadOnChange: true);config.AddJsonFile($appsettings.{env.EnvironmentName}.json, optional: true, reloadOnChange: true);config.AddJsonFile(Path.Combine(pathOfCommonSettingsFile, customsettings.json), optional: true);}).UseStartupStartup();使用 Memory Provider 所谓的 Memory Provider 允许我们将应用程序的一些配置直接配置到内存而不像传统方式那样一定要指定一个 物理文件, 下面的代码展示了如何使用 Memory Provider 将 key-value 存放在内存中。var builder  new ConfigurationBuilder();var profileCollection  new Dictionarystring, string{{AuthorProfile:FirstName, Joydip},{AuthorProfile:LastName, Kanjilal},{AuthorProfile:Address, Hyderabad, India}};builder.AddInMemoryCollection(profileCollection);Configuration  builder.Build();灌到内存之后接下来就可以通过 IConfiguration 实例获取了如下代码所示
var firstName  _configuration[Profile:FirstName];值得注意的是和传统的 ASP.NET 相比 ASP.NET Core 中的配置文件数据有变更时默认情况下应用程序是不会感知的如果要做到感知的话通常有两种做法。重启应用程序调用 IConfigurationRoot.Reload()对了除了上文提到了json和memoryASP.NET Core 还支持众多的数据格式如JSON, XMLINI。译文链接https://www.infoworld.com/article/3310608/how-to-use-configuration-providers-in-aspnet-core.html