{
"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
Controller控制器读取 一般读取你可能需要
.net core项目启动时 看控制台输出,或者让控制台跟着启动 该怎么做呢?
https://blog.csdn.net/cplvfx/article/details/115056814
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.Configure3.升级ReadAppsettingsController.cs(Configuration.GetSection("ConnectionStrings")); #endregion
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();
}
}
}



