本文章基于VS2022   .Net6 

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

一、新建公共类库Common,用于存放一些公用方法

二、如上图:

使用Nuget安装

Microsoft.Extensions.Configuration

Microsoft.Extensions.Configuration.Json

Microsoft.Extensions.Configuration.Binder

三、Common类库新建AppSetting.cs,代码如下

using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Configuration.Json;

namespace Common.Helper
{
    /// <summary>
    /// appsettings.json操作类
    /// </summary>
    public class AppSetting
    {
        static IConfiguration Configuration { get; set; }
        static string ContentPath { get; set; }

        public AppSetting()
        {
            string path = "appsettings.json";
            Configuration = new ConfigurationBuilder().SetBasePath(ContentPath).Add(new JsonConfigurationSource
            {
                Path = path,
                Optional = false,
                ReloadOnChange = true
            }).Build();
        }
        public AppSetting(IConfiguration configuration)
        {
            Configuration = configuration;
        }

        /// <summary>
        /// 获取指定属性值
        /// </summary>
        /// <param name="sections"></param>
        /// <returns></returns>
        public static string app(params string[] sections)
        {
            try
            {
                if (sections.Any())
                {
                    if (Configuration != null)
                    {
#pragma warning disable CS8603 // 可能返回 null 引用。
                        return Configuration[string.Join(":", sections)];
#pragma warning restore CS8603 // 可能返回 null 引用。
                    }
                }
            }
            catch (Exception ex)
            {

            }
            return "";
        }

        /// <summary>
        /// 获取指定对象值
        /// </summary>
        /// <param name="sections"></param>
        /// <returns></returns>
        public static List<T> app<T>(params string[] sections)
        {
            List<T> list = new List<T>();
            Configuration.Bind(string.Join(":", sections), list);
            return list;
        }
    }
}

四、appsettings.json 内容如下

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    }
  },
  "AllowedHosts": "*",
  "AppSettings": {
    //数据库连接字符串
    "ConnectionStrings": "Server=127.0.0.1;User Id=id;Password=pwd;Database=dbname;"
  }
}

五、在项目 Program.cs 里使用 AddSingleton注册AppSetting,并测试读取AppSettings的ConnectionStrings,代码如下

//注册appsettings读取类
builder.Services.AddSingleton(new AppSetting(builder.Configuration));
//测试AppSetting操作
var text = AppSetting.app(new string[] { "AppSettings", "ConnectionStrings" });
Console.WriteLine($"ConnectionString:{text}");
Console.ReadLine();

六、运行测试结果如下

上一章:一、使用Swagger(接口文档工具)_XiaoGuaiSs的博客-CSDN博客前言:本次学习都是在VS2022上进行,其它VS版本实现可能存在差异,仅自己学习记录。一、创建项目,本章主要讲的是接口文档在线生成工具Swagger,需要创建WebAPI项目,点击下一步二、输入项目名称和选择项目存储位置,点击下一步三、取消勾选“配置HTTPS“项,勾选"启用OpenAPI支持"项,点击创建...https://blog.csdn.net/m0_37894611/article/details/123498165?spm=1001.2014.3001.5501下一章:三、JWT(JSON Web Tokens)令牌(token)_XiaoGuaiSs的博客-CSDN博客_jwt参数一、什么是JWT根据维基百科定义,JWT(读作 [/dʒɒt/]),即JSON Web Tokens,是一种基于JSON的、用于在网络上声明某种主张的令牌(token)。JWT通常由三部分组成: 头信息(header), 消息体(payload)和签名(signature)。它是一种用于双方之间传递安全信息的表述性声明规范。JWT作为一个开放的标准(RFC 7519),定义了一种简洁的、自包含的方法,从而使通信双方实现以JSON对象的形式安全的传递信息。二、在appsettings.json中配置jhttps://blog.csdn.net/m0_37894611/article/details/123575644

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐