栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

.net core 读取 appsettings.json

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

.net core 读取 appsettings.json

appsettings.json
{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "AllowedHosts": "*",
  "Id": "cplvfx",
  "Name": "Cheng",
  "ManageInfo": {
    "Id": "M_cplvfx",
    "Name": "M_Cheng"
  },
  "ConnectionStrings": {
    "WriteConnection": "Server=LAPTOP-JU1DEJP1;Database=ZhaoxiDBSet;Trusted_Connection=True;",
    "ReadConnectionList": [
      "Server=LAPTOP-JU1DEJP1;Database=ZhaoxiDBSet01;Trusted_Connection=True;",
      "Server=LAPTOP-JU1DEJP1;Database=ZhaoxiDBSet02;Trusted_Connection=True;",
      "Server=LAPTOP-JU1DEJP1;Database=ZhaoxiDBSet03;Trusted_Connection=True;"
    ]
  }
}
Startup.cs 读取 在ConfigureServices方法里读取

为什么要在这个方法里读取呢?

官方:This method gets called by the runtime. Use this method to add services to the container.

译:运行时调用此方法。使用此方法向容器添加服务。

实现

确保这个方法的上面有

 public IConfiguration Configuration { get; }

IConfiguration属于Microsoft.Extensions.Configuration

#region 读取配置文件
            Console.WriteLine($"///【读取配置文件】///");
            Console.WriteLine($"Id:{Configuration["Id"]}");
            Console.WriteLine($"Name:{Configuration["Name"]}");
            Console.WriteLine($"///【下面是ManageInfo】///");
            Console.WriteLine($"ManageInfo.Id:{Configuration["ManageInfo:Id"]}");
            Console.WriteLine($"ManageInfo.Name:{Configuration["ManageInfo:Name"]}");
            Console.WriteLine($"///【下面是数据库链接配置ConnectionStrings】///");
            Console.WriteLine($"写数据连接:ConnectionStrings.WriteConnection:{Configuration["ConnectionStrings:WriteConnection"]}");
            Console.WriteLine($"读数据连接1:ConnectionStrings.ReadConnectionList:ManageInfo.Name:{Configuration["ConnectionStrings:ReadConnectionList:0"]}");
            Console.WriteLine($"读数据连接2:ConnectionStrings.ReadConnectionList:ManageInfo.Name:{Configuration["ConnectionStrings:ReadConnectionList:1"]}");
            Console.WriteLine($"读数据连接3:ConnectionStrings.ReadConnectionList:ManageInfo.Name:{Configuration["ConnectionStrings:ReadConnectionList:2"]}");
#endregion

你可能需要

.net core项目启动时 看控制台输出,或者让控制台跟着启动 该怎么做呢?

https://blog.csdn.net/cplvfx/article/details/115056814

Controller控制器读取 一般读取
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using net5demo1.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace net5demo1.Controllers
{
    public class ReadAppsettingsController : Controller
    {
        private readonly IConfiguration _Configuration;//读取配置文件
        public ReadAppsettingsController(IConfiguration configuration) 
        {
            _Configuration = configuration;//读取配置文件赋值
        }
        public IActionResult Index()
        {
            ViewBag.Id = _Configuration["Id"];
            ViewBag.Name = _Configuration["Name"];
            ViewBag.ManageInfoId = _Configuration["ManageInfo:Id"];
            ViewBag.ManageInfoName = _Configuration["ManageInfo:Name"];
            ViewBag.ConnectionStringsWriteConnection= _Configuration["ConnectionStrings:WriteConnection"];
            ViewBag.ConnectionStringsReadConnectionList0 = _Configuration["ConnectionStrings:ReadConnectionList:0"];
            ViewBag.ConnectionStringsReadConnectionList1 = _Configuration["ConnectionStrings:ReadConnectionList:1"];
            ViewBag.ConnectionStringsReadConnectionList2 = _Configuration["ConnectionStrings:ReadConnectionList:2"]; 
            return View();
        }
    }
}
当作模型读取 1.添加模型类
    public class DbConnectionOptions
    {
        public string WriteConnection { get; set; }

        public List ReadConnectionList { get; set; }

    }
2.修改Startup.cs

在ConfigureServices()方法里添加

#region 读取配置文件成实体对象类型
 services.Configure(Configuration.GetSection("ConnectionStrings"));
#endregion
3.升级ReadAppsettingsController.cs
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using net5demo1.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace net5demo1.Controllers
{
    public class ReadAppsettingsController : Controller
    {
        /// 
        /// 写日志
        /// 
        private readonly ILogger _logger;
        /// 
        /// 读取配置文件
        /// 
        private readonly IConfiguration _Configuration;
        /// 
        /// 读取配置文件的模型对象
        /// 
        private readonly DbConnectionOptions _optionsCurrent;

        /// 
        /// 构造函数
        /// 
        /// 日志
        /// 配置文件
        /// 读取的配置文件模型数据
        public ReadAppsettingsController(ILogger logger, IConfiguration configuration, IOptions options) 
        {
            _logger = logger;//日志对象赋值
            _Configuration = configuration;//读取配置文件赋值
            _optionsCurrent = options.Value;//读取配置文件的模型对象 赋值
            _logger.LogWarning("ReadAppsettingsController被构造。。。");//写日志
        }
        public IActionResult Index()
        {
            ViewBag.Id = _Configuration["Id"];
            ViewBag.Name = _Configuration["Name"];
            ViewBag.ManageInfoId = _Configuration["ManageInfo:Id"];
            ViewBag.ManageInfoName = _Configuration["ManageInfo:Name"];
            ViewBag.ConnectionStringsWriteConnection= _Configuration["ConnectionStrings:WriteConnection"];
            ViewBag.ConnectionStringsReadConnectionList0 = _Configuration["ConnectionStrings:ReadConnectionList:0"];
            ViewBag.ConnectionStringsReadConnectionList1 = _Configuration["ConnectionStrings:ReadConnectionList:1"];
            ViewBag.ConnectionStringsReadConnectionList2 = _Configuration["ConnectionStrings:ReadConnectionList:2"];
            ViewBag.DbConnectionOptions = Newtonsoft.Json.JsonConvert.SerializeObject(_optionsCurrent);//把模型数据转换成Json
            return View();
        }
    }
}

 

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/907485.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号