NET Core开发-读取配置文件Configuration

ASP.NET Core 是如何读取配置文件,今天我们来学习。

ASP.NET Core的配置系统已经和之前版本的ASP.NET有所不同了,之前是依赖于System.Configuration和XML配置文件web.config。

新的配置系统支持多种格式的配置文件。

下面我们来以json 格式的配置文件正式开始学习。

我们新建一个ASP.NET Core Web 应用程序,选择无身份验证。

读取配置文件

在项目目录下有个 appsettings.json ,我们先来操作这个文件。

在appsettings.json 添加如下两个节点。

{
  "Data": "LineZero",
  "ConnectionStrings": {
    "DefaultConnection": "数据库1",
    "DevConnection": "数据库2"
  },
  "Logging": {
    "IncludeScopes": false,
    "LogLevel": {
      "Default": "Debug",
      "System": "Information",
      "Microsoft": "Information"
    }
  }
}

下面我们来读取。由于项目默认已经将该文件加入ConfigurationBuilder 之中,所以我们可以直接来读取。

在 Configure 方法中读取:

        public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
        {
            var data = Configuration["Data"];
            //两种方式读取
            var defaultcon = Configuration.GetConnectionString("DefaultConnection");
            var devcon = Configuration["ConnectionStrings:DevConnection"];

调试程序,可以看到数据成功取出。

多环境区分

我们复制一个appsettings.json 然后重命名为 appsettings.Development.json

更改appsettings.Development.json 如下:

{
  "Data": "LineZero Development",
  "ConnectionStrings": {
    "DefaultConnection": "开发数据库1",
    "DevConnection": "开发数据库2"
  },
  "Logging": {
    "IncludeScopes": false,
    "LogLevel": {
      "Default": "Debug",
      "System": "Information",
      "Microsoft": "Information"
    }
  }
}

然后我们调试程序,你会发现获取到的值变成了Development.json 里的值。

这里就是多环境配置。

        public Startup(IHostingEnvironment env)
        {
            var builder = new ConfigurationBuilder()
                .SetBasePath(env.ContentRootPath)
                .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
                .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)//增加环境配置文件,新建项目默认有
                .AddEnvironmentVariables();
            Configuration = builder.Build();
        }

如果我们直接执行读取到的就是appsettings.json 的值,因为直接执行时是 Production 环境。

下面是输出图:

调试时:

dotnet run 时:

对象读取

我们在appsettings.json 及 Development.json 都添加一个 SiteConfig 节点。

  "SiteConfig": {
    "Name": "LineZero‘s Blog",
    "Info": "ASP.NET Core 开发及跨平台,配置文件读取"
  },

然后新建一个SiteConfig 类。

    public class SiteConfig
    {
        public string Name { get; set; }
        public string Info { get; set; }
    }

首先在 ConfigureServices 中添加Options 及对应配置。

        public void ConfigureServices(IServiceCollection services)
        {
            // Add framework services.
            services.AddMvc();
            //添加options
            services.AddOptions();
            services.Configure<SiteConfig>(Configuration.GetSection("SiteConfig"));
        }

然后我们在 Controller 中读取。

    public class HomeController : Controller
    {
        public SiteConfig Config;

        public HomeController(IOptions<SiteConfig> option)
        {
            Config = option.Value;
        }

        public IActionResult Index()
        {
            return View(Config);
        }
    }

对应View Index.cshtml

@model SiteConfig
@{
    ViewData["Title"] = Model.Name;
}
<h1>@Model.Name</h1>
<h2>@Model.Info</h2>

执行程序 http://localhost:5000/

原文地址:https://www.cnblogs.com/guzhanyu/p/9004063.html

时间: 2024-08-29 06:26:39

NET Core开发-读取配置文件Configuration的相关文章

ASP.NET Core开发-读取配置文件Configuration

ASP.NET Core 是如何读取配置文件,今天我们来学习. ASP.NET Core的配置系统已经和之前版本的ASP.NET有所不同了,之前是依赖于System.Configuration和XML配置文件web.config. 新的配置系统支持多种格式的配置文件. 下面我们来以json 格式的配置文件正式开始学习. 我们新建一个ASP.NET Core Web 应用程序,选择无身份验证. 读取配置文件 在项目目录下有个 appsettings.json ,我们先来操作这个文件. 在appse

Asp.Net Core 在不能使用注入方式的情况下读取配置文件

最近在用Asp.Net Core 做项目,遇到一个在不能使用注入的类中读取配置文件的问题. 大家都知道在core中推荐使用注入的方式读取配置文件,这样读取到的值是强类型的,弥补了web.config的缺陷. 当我用着正爽的时候遇到了一个静态类也需要读取配置文件的问题,纠结了几天才又了这篇博文. 最初的版本是下面这个样子 public static class ConfigurationManager { static IConfiguration Configuration; static Co

.Net Core系列:读取配置文件

1. 控制台应用 新建一个控制台应用,添加两个Package: Install-Package Microsoft.Extensions.Configuration Install-Package Microsoft.Extensions.Configuration.Json 创建配置文件appsettings.json: { "Data": "10000", "ConnectionStrings": { "DevContext&quo

win7 web开发遇到的问题-由于权限不足而无法读取配置文件,无法访问请求的页面

错误一: HTTP Error 500.19 - Internal Server Error配置错误: 不能在此路径中使用此配置节.如果在父级别上锁定了该节,便会出现这种情况.锁定是默认设置的 (overrideModeDefault="Deny"),或者是通过包含 overrideMode="Deny" 或旧有的 allowOverride="false" 的位置标记明确设置的. 出现这个错误是因为 IIS 7 采用了更安全的 web.conf

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

在.NET Framework框架时代我们的应用配置内容一般都是写在Web.config或者App.config文件中,读取这两个配置文件只需要引用System.Configuration程序集,分别用 System.Configuration.ConfigurationManager.AppSettings["SystemName"];//读取appSettings配置 System.Configuration.ConfigurationManager.ConnectionStrin

ASP.NET Core实现类库项目读取配置文件

.NET Core类库项目读取JSON配置文件 在应用程序目录下添加JSON文件是进行如下配置:                 var builder = new ConfigurationBuilder()                 .SetBasePath(env.ContentRootPath)                 .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)   

干货:.net core实现读取appsettings.json配置文件(建议收藏)

看好多人不懂在.NET CORE中如何读取配置文件,我这里分两篇,这一篇介绍怎样通过appsettings.json配置读取文件信息.这里我会教大家两种方式: 第一种直接放到通用类库,那里想调往那调. 1.编辑我们的appsettings.json文件 { "Logging": { "LogLevel": { "Default": "Information", "Microsoft": "Warn

【无私分享:ASP.NET CORE 项目实战(第八章)】读取配置文件(二) 读取自定义配置文件

目录索引 [无私分享:ASP.NET CORE 项目实战]目录索引 简介 我们在 读取配置文件(一) appsettings.json 中介绍了,如何读取appsettings.json. 但随之产生了问题:我们使用的是在 Startup.cs 中(如下图)来实现配置读取,有两个问题 ① 我们如果定义N种配置,是否要再这里添加N条这样的配置 : ② 如果我们的配置不想写在appsettings.json中呢 解决问题 带着上面的两个问题,我们首先来添加一个配置文件 siteconfig.json

Log4j 2.0在开发中的高级使用详解—读取配置文件(六)

log4j中配置日志文件存放的位置不一定在src下面,即根目录下.这个时候我们需要解决如何加载配置文件的问题.在log4j1.x中解决的方法就比较多了.如:PropertyConfigurator.configure();和DOMConfigurator.configure ();这两种方法读取.而在log4j2.x当中,这两个类都已经不存在了.这个时候我们该如何去加载配置文件呢? 答案也很简单,就是log4j2.x的版本给我提供了ConfigurationSource和Configurator