.net core自定义读取配置文件
新建完成后项目目录下有个 appsettings.json
{
  "Logging": {
    "LogLevel": {
      "Default": "Warning"
    }
  },
  "SqlServer": {
    "Host": "192.168.1.0",//地址
    "Port": 6215,//端口号
    "DataBase": "test",//连接数据库
    "UserName": "sa",//用户名
    "Password": "q*^fsZ#B4"//密码
  },
  "AllowedHosts": "*"
}
新建一个AppsettingModels类,用于获取配置数据
public class SqlServerConn
    {
        public string Host { get; set; }
        public string Port { get; set; }
        public string DataBase { get; set; }
        public string UserName { get; set; }
        public string Password { get; set; }
    }
常规的读取配置文件的数据方法
public void ConfigureServices(IServiceCollection services)
        {
            SqlServerConn sqlServerConn = new SqlServerConn();
            Configuration.GetSection("SqlServer").Bind(sqlServerConn);
            /* 另外的读取方式             
            var sqlServer = Configuration.GetConnectionString("SqlServer");读取节点下的所有配置
            var host = Configuration["SqlServer:Host"];只读取配置里的端口
             */
              //简单的配置连接的地址
             services.AddDbContext<ZDDBContext>(options =>
            {
                options.UseLazyLoadingProxies().UseSqlServer("Server=" + sqlServerConn.Host + "," + sqlServerConn.Port + "; Database=" + sqlServerConn.DataBase + ";Persist Security Info=True;User ID=" + sqlServerConn.UserName + ";password=" + sqlServerConn.Password + ";", a => a.UseRowNumberForPaging());
            }, ServiceLifetime.Scoped);
        }
或者在控制器里直接注入一下
public class ValuesController : ControllerBase
    {
        private IConfiguration _configuration;
        public ValuesController(IConfiguration configuration)
        {
            _configuration = configuration;
        }
        public IActionResult test()
        {
            var query = _configuration.GetSection("AllowedHosts");
            return Ok();
        }
    }
在有的时候我们需要在别的类库里直接使用,不便于在写个构造函数来注入一下以及存在了循环引用等问题时,就可以采用自定义的模式,如下:先建SiteConfig类
/// <summary>
    /// 配置信息读取模型
    /// </summary>
    public static class SiteConfig
    {
        private static IConfigurationSection _appSection = null;
/// <summary>
        /// api配置信息
        /// </summary>
        public static string AppSetting(string key)
        {
            string str = string.Empty;
            if (_appSection.GetSection(key) != null)
            {
                str = _appSection.GetSection(key).Value;
            }
            return str;
        }
public static void SetAppSetting(IConfigurationSection section)
        {
            _appSection = section;
        }
public static string GetSite(string apiName)
        {
            return AppSetting(apiName);
        }
    }
自定义类读取配置
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            SiteConfig.SetAppSetting(Configuration.GetSection("SqlServer"));
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseHsts();
            }
app.UseHttpsRedirection();
            app.UseMvc();
        }
使用的时候直接SiteConfig.GetSite("键");
/// <summary>
        /// 读取配置
        /// </summary>
        /// <returns></returns>
        public void ReadSite()
        {
            SqlConn sqlServerConn = new SqlConn();
            sqlServerConn.Host = SiteConfig.GetSite("Host");
            sqlServerConn.Port = SiteConfig.GetSite("Port");
            sqlServerConn.DataBase = SiteConfig.GetSite("DataBase");
            sqlServerConn.UserName = SiteConfig.GetSite("UserName");
            sqlServerConn.Password = SiteConfig.GetSite("Password");
        }
如果觉得本文有不对的地方,往大佬轻喷,告知我会立即修正。
.net core自定义读取配置文件的更多相关文章
- NET Core开发-读取配置文件Configuration
		ASP.NET Core开发-读取配置文件Configuration ASP.NET Core 是如何读取配置文件,今天我们来学习. ASP.NET Core的配置系统已经和之前版本的ASP.NE ... 
- .net core 学习 读取配置文件
		在空项目中是没有配置文件的,首先要新建一个,配置文件内容如下,下面来读取各个内容 { "ConnectionStrings": { "DefaultConnection& ... 
- ASP.NET Core开发-读取配置文件Configuration
		ASP.NET Core 是如何读取配置文件,今天我们来学习. ASP.NET Core的配置系统已经和之前版本的ASP.NET有所不同了,之前是依赖于System.Configuration和XML ... 
- ASP.NET Core开发-读取配置文件Configuration appsettings.json
		https://www.cnblogs.com/linezero/p/Configuration.html ASP.NET Core 是如何读取配置文件,今天我们来学习. ASP.NET Core的配 ... 
- asp.net core mvc 读取配置文件appsettings.json
		上一篇我们将了读取自定义配置文件.这篇我们讲一下asp.net core mvc里读取自带的配置文件 appsettings.json 首先创建个asp.net core mvc项目,项目里有Prog ... 
- .net core 灵活读取配置文件
		using Microsoft.Extensions.Configuration; using System; using System.Collections.Generic; using Syst ... 
- .net core中读取配置文件
		1)先看丑陋的方法 读取 appsettings.json 然后在 Startup 的 ConfigureServices() 方法中进行注入: public IConfigurationRoot ... 
- 干货:.net core实现读取自定义配置文件,有源代码哦
		看好多人不懂在.NET CORE中如何读取配置文件,我这里分了两篇,上一篇介绍了怎样通过appsettings.json配置读取文件信息.这一篇教大家自定义配置文件: 1.在项目下创建配置文件 { & ... 
- 【无私分享:ASP.NET CORE 项目实战(第八章)】读取配置文件(二) 读取自定义配置文件
		目录索引 [无私分享:ASP.NET CORE 项目实战]目录索引 简介 我们在 读取配置文件(一) appsettings.json 中介绍了,如何读取appsettings.json. 但随之产生 ... 
随机推荐
- [LeetCode] 93. Restore IP Addresses 复原IP地址
			Given a string containing only digits, restore it by returning all possible valid IP address combina ... 
- Spring boot后台搭建二集成Shiro权限控制
			上一篇文章,实现了用户验证 查看,接下来实现下权限控制 权限控制,是管理资源访问的过程,用于对用户进行的操作授权,证明该用户是否允许进行当前操作,如访问某个链接,某个资源文件等 Apache Shir ... 
- 【计算机视觉】目标检测中的指标衡量Recall与Precision
			[计算机视觉]目标检测中的指标衡量Recall与Precision 标签(空格分隔): [图像处理] 说明:目标检测性能指标Recall与Precision的理解. Recall与Precision ... 
- SpringBoot系列教程之Redis集群环境配置
			之前介绍的几篇redis的博文都是基于单机的redis基础上进行演示说明的,然而在实际的生产环境中,使用redis集群的可能性应该是大于单机版的redis的,那么集群的redis如何操作呢?它的配置和 ... 
- ceph架构简介
			ceph架构简介 在测试OpenStack的后端存储时,看到了ceph作为后端存储时的各种优势 ,于是查询资料,总结了这篇ceph架构的博客,介绍了ceph的架构和ceph的核心组件.ceph整体十分 ... 
- QT QML 在qml中自定义信号
			服从真理,就能征服一切事物. -- 塞涅卡 实例: 自定义文件 MoveYou.qml: import QtQuick 2.5 import QtQuick.Controls 1.4 import Q ... 
- 为Ubuntu笔记本电脑创建WiFi热点共享上网
			from: linux公社 http://www.linuxidc.com/Linux/2014-02/97139.htm 该文由土木坛子转译而来,说是转译,其实看截图就可以方便的设置,没有任何命 ... 
- 【LeetCode】下一个排列【找规律】
			实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列. 如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列). 必须原地修改,只允许使用额外常数空间. ... 
- 【Linux】多线程入门详解
			背景知识: 1.每次进程切换,都存在资源的保持和恢复动作,即上下文切换 2.进程的引入虽然可以解决多用户的问题,但是进程频繁切换的开销会严重影响系统性能 3.同一个进程内部有多个线程,这些线程共享的是 ... 
- [转帖]腾讯将使用AMD第二代霄龙处理器打造自研服务器:性能提升35%
			腾讯将使用AMD第二代霄龙处理器打造自研服务器:性能提升35% https://news.cnblogs.com/n/647499/ 我司的服务器是不是要少一块蛋糕了.. 作者:万南 今日,AMD 宣 ... 
