.Net Core3.0 WebApi 三:读取appsettings.json

摘要:
.NetCore3.0 WebApi目录appsettings在编写项目时,我们倾向于将一些经常更改和可能更改的参数写入配置文件、数据库和其他可以轻松存储和配置数据的地方,这将有助于项目上线后的相应配置工作。在CoreWebApi项目中,我们将把配置文件放在appsettings中。json文件,我们将编写一个读取配置文件的公共类。
.Net Core3.0 WebApi 目录 appsettings.json

我们在写项目时往往会把一些经常变动的,可能会变动的参数写到配置文件、数据库中等可以存储数据且方便配置的地方,这样会方便我们在项目上线以后做相对应的配置工作。

.Core WebApi项目中我们将把配置文件统一放在appsettings.json文件中,我们将将写一个读取配置文件的公用类。

新建公共类库

新建类库Webapi.Core.Infrastructure,(基础设施)用来存放一些公用的方法

.Net Core3.0 WebApi 三:读取appsettings.json第1张

 

使用Nuget安装Microsoft.Extensions.Configuration和Microsoft.Extensions.Configuration.Json,Microsoft.Extensions.Configuration.Binder, 编辑ConfigHelper.cs,代码如下:

 

复制代码
namespace WebApi.Core.Infrastructure.Helpers
{
    public class ConfigHelper
    {
        private static readonly IConfiguration _configuration;

        static ConfigHelper()
        {
            //在当前目录或者根目录中寻找appsettings.json文件
            var fileName = "appsettings.json";

            var directory = AppContext.BaseDirectory;
            directory = directory.Replace("\", "/");

            var filePath = $"{directory}/{fileName}";
            if (!File.Exists(filePath))
            {
                var length = directory.IndexOf("/bin");
                filePath = $"{directory.Substring(0, length)}/{fileName}";
            }

            var builder = new ConfigurationBuilder()
                .AddJsonFile(filePath, false, true);

            _configuration = builder.Build();
        }

        /// <summary>
        /// 获取Section的值
        /// </summary>
        /// <param name="key"></param>
        /// <returns></returns>
        public static string GetSectionValue(string key)
        {
            return _configuration.GetSection(key).Value;
        }

        /// <summary>
        /// 获取ConnectionStrings下的值
        /// </summary>
        /// <param name="key"></param>
        /// <returns></returns>
        public static string GetConnectionString(string key)
        {
            return _configuration.GetConnectionString(key);
        }
    }
}
复制代码

 

读取appsettings.json

编辑appsetting.json,添加一个红色部分

 

复制代码
{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "AllowedHosts": "*",
  "ConnectionStrings": {
    "ConnectionString": "Data Source=127.0.0.1;Initial Catalog=db;User ID=uid;Password=123456;Pooling=True;Max Pool Size=512;Connect Timeout=500;"
  }
}
复制代码

 

var connStr = ConfigHelper.GetConnectionString("ConnectionString");
            Console.WriteLine(connStr);

.Net Core3.0 WebApi 三:读取appsettings.json第6张

免责声明:文章转载自《.Net Core3.0 WebApi 三:读取appsettings.json》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇WORD转HTML-python第三方包Mammoth(官方文档翻译)SendMessage()鼠标软模拟下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

移动前端—H5实现图片先压缩再上传

  在做移动端图片上传的时候,用户传的都是手机本地图片,而本地图片一般都相对比较大,拿iphone6来说,平时拍很多图片都是一两M的,如果直接这样上传,那图片就太大了,如果用户用的是移动流量,完全把图片上传显然不是一个好办法。   目前来说,HTML5的各种新API都在移动端的webkit上得到了较好的实现。根据查看caniuse,本demo里使用到的Fi...

js回调与异步加载的用法

以前还是菜鸟的时候(虽然现在依然很菜 -_-|| )对异步加载与回调函数的技术无比向往,但也一直没有使用过,这次因为页面逻辑太过复杂,一堆请求逻辑,如果还是用顺序请求,页面的速度。。。 领导又要挠头了。 人是被逼出来的,所以去研究下异步与回调,以下只是本人自己见解啊,用来自己回忆的,不喜勿喷: 额。。。额。。。算了,打字好麻烦,直接上代码吧,又不是看不懂...

Linux自带神器logrotate详解

Linux自带神器logrotate详解 散尽浮华 运维 3天前   作者:散尽浮华 链接:https://www.cnblogs.com/kevingrace/p/6307298.html 对于 Linux 系统安全来说,日志文件是极其重要的工具。不知为何,我发现很多运维同学的服务器上都运行着一些诸如每天切分 Nginx日志之类的 CRON 脚本...

dart 自己写一个简单的文件编码器

1 //import 'dart:convert'; 2 import 'dart:io'; 3 4 main() async { 5   var src = File('./lib/convert/source.txt'); 6   var output = File('./lib/convert/output.txt'); 7 8   var in...

Echarts自动刷新数据

1.Echarts自动刷新数据 1.Echarts柱状图的正常配置 注:声明了 myChart、test这两个都有用 官方示例中myChart是声明在 function(ec)里面的 <script src="http://cdn.staticfile.org/jquery/2.1.1-rc2/jquery.min.js"></scri...

Asp.Net WebAPI 中Cookie 获取操作方式

1. /// <summary> ///获取上下文中的cookie /// </summary> /// <returns></returns> [HttpGet] [HttpPost] public stringGetOne() { //1.在WebApi中这种方式获取cookie...