背景:在做winform的时候很经常就是将数据库的连接字符串信息保存到配置文件中,今天突然发现asp.net core webapi中的获取方式是很不一样的。
在.net framework中
配置文件在App.config中
<?xml version="1.0" encoding="utf-8" ?>
<configuration><startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" /></startup><connectionStrings><add name = "connString" connectionString="Server=LAPTOP-61GDB2Q7\SQLEXPRESS;DataBase=SMDB;Uid=sa;Pwd=root123;Pooling = true;Max Pool size = 10; Min Pool size = 5;"/></connectionStrings>
</configuration>
-- 第二个就是我们自己增加的数据库连接字符串
获取的话使用ConfigurationManager
private static readonly string connString = ConfigurationManager.ConnectionStrings["connString"].ToString();
在asp.net core webapi中
配置文件保存在appsettings.json中
{"Logging": {"LogLevel": {"Default": "Information","Microsoft": "Warning","Microsoft.Hosting.Lifetime": "Information"}},"AllowedHosts": "*","DBConnectStr": "server=LAPTOP-61GDB2Q7\\SQLEXPRESS;Database=smartPark_record;Trusted_Connection=True"
}
-- 第二个就是我们自己增加的数据库连接字符串
这个的是使用最好是自己写一个Configuration类,用于对配置文件的访问
using IConfiguration;
using Microsoft.Extensions.Configuration;
using System;
using System.IO;namespace Configuration
{public class Configuration : IConfiguration.IConfiguration{private static IConfigurationRoot configurationRoot;static Configuration(){// 这最后的两个拓展方法要安装Configuration.FileExtensions和Configuration.Json才能用var builder = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()).AddJsonFile("appsettings.json");configurationRoot = builder.Build();}// 通过这个就可以获取配置文件的值了public string Read(string key){return configurationRoot[key];}}
}
-- 这两个拓展方法使用的NuGet包都是官方提供的