首页 > 编程语言 >c# asp.net core 6 配置文件与ServiceCollection的使用

c# asp.net core 6 配置文件与ServiceCollection的使用

时间:2022-10-27 23:00:26浏览次数:57  
标签:core asp Console 配置文件 Extensions configBuilder true Microsoft

一、引包

1.Microsoft.Extensions.Configuration

2.Microsoft.Extensions.Configuration.Json

3.Microsoft.Extensions.Configuration.Binder

4.Microsoft.Extensions.DependencyInjection

5.Microsoft.Extensions.Options

二、创建配置文件

创建一个json文件,并且复制到输出目录设置成如果较新复制

{
 "data":"21",
  "db": {
    "ConnectionString": "链接字符串",
    "DbType": "mysql"
  }
}

 三、配置文件(ConfigurationBuilder类)的基本使用

ConfigurationBuilder configBuilder = new ConfigurationBuilder();
//先加载配置文件
//path=文件路径;optional=true文件不存在不报错,false文件不存在报错;reloadOnChange文件修改了是否重新加载
configBuilder.AddJsonFile(path:"config.json",optional: true, reloadOnChange:true);
IConfigurationRoot root = configBuilder.Build();
{
    var str = root["data"];
    Console.WriteLine(str);
}
{
    var str = root.GetSection("db:DbType").Value;
    Console.WriteLine(str);
}
//说明:索引也可以使用GetSection当中的JsonPath写法,

 四、创建实体类

 /// <summary>
    ///配置文件的依赖注入不能直接引用实体类,
    ///需要使用:
    ///IOptions<Demo>说明:重启后更改配置
    ///IOptionsMonitor<Demo>说明:暂时没明白
    ///IOptionsSnapshot<Demo>说明:更改后立即生效
    /// </summary>
    internal class Demo
    {
        IOptionsSnapshot<DbSettings> options;
        
        public Demo(IOptionsSnapshot<DbSettings> options)
        {
            this.options = options;
        }   

        public void read()
        {
            Console.WriteLine("数据库"+options.CurrentValue.DbType);
        }
    }

 五、结合ServiceCollection读取配置文件。

ConfigurationBuilder configBuilder = new ConfigurationBuilder();
configBuilder.AddJsonFile(path:"config.json",optional: true, reloadOnChange:true);
IConfigurationRoot root = configBuilder.Build();
ServiceCollection services = new ServiceCollection();
//实体类绑定配置文件json对象 services.AddOptions().Configure<DbSettings>(r => root.GetSection("db").Bind(r)); services.AddTransient<Demo>(); using(var sp = services.BuildServiceProvider()) { while (true) { using(var p = sp.CreateAsyncScope()) { var demo = p.ServiceProvider.GetService<Demo>(); demo!.read(); } Console.Write("读取成功"); Console.ReadKey(); } }

 

 

 成功更改。

标签:core,asp,Console,配置文件,Extensions,configBuilder,true,Microsoft
From: https://www.cnblogs.com/lzyyyds/p/16834118.html

相关文章

  • SparkCore(四)
    【理解】Spark内核原理RDD依赖RDD的5大特性中,第三个是【与父RDD的依赖关系】依赖关系可以按照是否有shuffle进一步分类窄依赖:【没有】shuffle,父RDD的一个分......
  • AIR32F103(四) 27倍频216MHz,CoreMark跑分测试
    目录AIR32F103(一)合宙AIR32F103CBT6开发板上手报告AIR32F103(二)Linux环境和LibOpenCM3项目模板AIR32F103(三)Linux环境基于标准外设库的项目模板AIR32F103(四)2......
  • .NET Core WebApi 快速切换开发/生产环境
    项目结构中有三个配置文件  appsettings.json:通用配置文件appsettings.Development.json:开发环境配置文件appsettings.Production.json:生产环境配置文......
  • [转载] 聊聊asp.net core 授权流程
    【转载】原文链接在上一篇聊聊asp.netcore认证和授权中我们提到了认证和授权的基本概念,以及认证和授权的关系及他们之间的协同工作流程,在这篇文章中,我将通过分析asp.......
  • 【HMS Core】AOSP11安装/预置HMS Core 可以关闭限制广告跟踪吗?
    ​1、问题描述问题现象:AOSP11安装/预置HMSCore无法关闭限制广告跟踪相关操作:进入HMSCore-广告,尝试关闭限制广告跟踪操作结果:无法关闭限制广告跟踪,按钮点击无......
  • 【HMS Core】REST获取运动健康APP数据的问题
    问题描述按REST文档操作,授权了步数、身高体重的读写权限,获取code,获取AT,创建了对应时间段、对应类型的采集器,手机上用同一个账号登录了,运动健康APP,也手动同步了数据,但是查......
  • 【HMS Core】华为地图怎么通过详细地址返回经纬度
    ​问题描述华为地图怎么通过详细地址返回经纬度的api和通过经纬度返回详细地址 解决方法Android通过位置信息获取地理编码信息请参考:https://developer.huawei.com/......
  • Go配置文件绑定到结构体实战演示
    说明在实际的开发过程中,我们必然会用到MySQL、Redis等这样的服务。为了实现系统的配置化,我们会把一些配置信息单独放在一些文件中,使用到的地方直接读取配置文件即可。常见......
  • Core J2EE Patterns - Data Access Object
    Incomputersoftware,adataaccessobject(DAO)isapatternthatprovidesanabstractinterfacetosometypeofdatabaseorotherpersistencemechanism.Bymap......
  • asp.net core6.0 model 搭建基架项目报错 解决办法
    1、可以参考以下博文方法试一试https://blog.csdn.net/Jinguagua/article/details/103784190https://blog.csdn.net/huzimu_/article/details/120061372http://www.zhou......