首页 > 其他分享 >读取.net core配置文件appsetting.json内容

读取.net core配置文件appsetting.json内容

时间:2024-07-03 14:45:01浏览次数:17  
标签:core GetSection 配置文件 CodeCreatorInfo appsetting json var Configuration public

appsetting.json内容

//省略部分代码...
//代码生成相关
  "CodeCreatorInfo": {
    "xmlPath": "11111", //xml路径(绝对路径)
    "jsRootPaht": "2222", //js文件夹路径
    "Controllers": "333", //特殊Controller列表,逗号隔开
    "NameSpace": "4444" //有效命名空间:"App.Web."之后的内容,主要用于多项目的项目,以逗号分隔,例如:APIControllers1,APIControllers2
  } 
//省略部分代码...

 

方法一:控制器中获取json,采用依赖注入的方式

 1、引用库
using Microsoft.Extensions.Configuration;

2、使用接口服务:IConfiguration

注:观察这个类,这已经被 CodeCreatorController 自动注入了,无需手动做注入操作

using Microsoft.Extensions.Configuration;

namespace App.Web.APIControllers
{
    /// <summary>
    /// js代码生成接口
    /// </summary>
    [Route("api/[controller]/[action]")]
    [ApiController]
    public class CodeCreatorController : BaseAPIController1
    {
        /// <summary>
        /// 自动注入
        /// </summary>
        /// <param name="configuration"></param>
        public CodeCreatorController(IConfiguration configuration)
        {
            _configuration = configuration;
        }
        public IConfiguration _configuration { get; }


        /// <summary>
        /// 获取XML文档内容,生成js文件内容,生成两种,分别用于页面和小程序
        /// </summary>
        [HttpGet]
        public JsonResult CreateJsByXML()
        {
            //获取appsettiong配置内容
            var CodeCreatorInfo = _configuration.GetSection("CodeCreatorInfo");
            string xmlPath = _configuration.GetSection("CodeCreatorInfo")["xmlPath"];
            
            /*
            省略部分代码            
            */
        }
    }
}

 

注意:如果项目中需要用到反射,此时对应当前 Controller  的反射时会出错。可以使用方法二

 

方法二:在.net core 类库中读取json文件

 1、添加引用:
using System.Configuration;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Configuration.Json;

 

2、加载配置文件的服务类:

/// <summary>
    /// 获取appsetting的服务类
    /// </summary>
    public class AppConfigurtaionServices
    {
        public static IConfiguration Configuration { get; set; }
        static AppConfigurtaionServices()
        {
            //ReloadOnChange = true 当appsettings.json被修改时重新加载            
            Configuration = new ConfigurationBuilder()
            //.SetBasePath(Directory.GetCurrentDirectory())
            //AppDomain.CurrentDomain.BaseDirectory是程序集基目录,所以appsettings.json,需要复制一份放在程序集目录下,
            .SetBasePath(AppDomain.CurrentDomain.BaseDirectory)
            .Add(new JsonConfigurationSource { Path = "appsettings.json", ReloadOnChange = true })
            .Build();
        }
    }

3、获取数据:

/*省略部分代码*/ 
//类库中读取:两种取值方式【OK】
var xmlPath = AppConfigurtaionServices.Configuration.GetSection("CodeCreatorInfo:xmlPath").Value;
var jsRootPaht = AppConfigurtaionServices.Configuration.GetSection("CodeCreatorInfo").GetSection("jsRootPaht").Value;
var Controllers = AppConfigurtaionServices.Configuration.GetSection("CodeCreatorInfo").GetSection("Controllers").Value;
var NameSpace = AppConfigurtaionServices.Configuration.GetSection("CodeCreatorInfo").GetSection("NameSpace").Value;
var ControllersArray = Controllers.Split(',');
var NameSpaceArray = NameSpace.Split(',');
/*省略部分代码*/

 

 

 

 

 

 原文:https://www.cnblogs.com/dyhao/p/13065774.html

  

标签:core,GetSection,配置文件,CodeCreatorInfo,appsetting,json,var,Configuration,public
From: https://www.cnblogs.com/youmingkuang/p/18281584

相关文章

  • C#.NET FRAMEWORK .NET CORE .NET6 .NET8 判断是否Emoji
    C#.NETFRAMEWORK.NETCORE.NET6.NET8判断是否Emoji 工具类:usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;namespaceConsoleThreadTimer{publicclassEmojiUtil{///<s......
  • NetCore的全局日志记录
    Http进来的数据和出去的数据都记录在log中publicclassHttpLoggingMiddleware{privatereadonlyRequestDelegate_next;privatereadonlyILogger<HttpLoggingMiddleware>_logger;publicHttpLoggingMiddleware(RequestDelegatenext,ILogger<HttpLoggingM......
  • WebAPI项目框架新建读取配置文件帮助类
    在.netcorewebapi项目中,我们会把配置信息同意放置在appsettings.json中,通过新建读取帮助类,更加简单的读取配置信息。新建公共类库文件夹Common,新建公共类库Web.Core.Common在Web.Core.Common类库下新建Helper文件夹,新建AppSettings帮助类 .NetCore6.0WebAPI项目框架搭......
  • .Net Core 链接postgresql 数据库
    安装依赖包Npgsql.EntityFrameworkCore.PostgreSQL必须Npgsql.EntityFrameworkCore.PostgreSQL.Design数据迁移相关新建数据库上下文类AppDbContext.cs注意当前文件,所在的项目,必须安装上面的依赖包//命名空间namespaceService{///<summary>///继承......
  • .Net Core Web Api 框架搭建详细步骤
    1、建立.NetCoreWebApi项目2、新建类库,分类结构层 3、使用EFCORE链接数据库,关联实体创建表,添加以下Nuget包创建DbContext 实例  4、appsettings.json配置数据库链接字符串,我当前是链接的mysql数据库5、Program依赖关系注入DbContextbuilder.Services.Ad......
  • .Net Core Web Api 框架搭建简单步骤
    1、建立.NetCoreWebApi项目2、新建相关类库项目3、在EFCORE项目中,创建DbContext 上下文实例,并将所有的实体类写入DbSet,在Program.cs中注入创建的DbContext 实力及配置数据库链接信息4、封装DbContext 仓储类Repository5、新建服务类及服务接口,继承仓储类进行数据增......
  • 在ASP.NET Core中使用brotli压缩
    原文链接:https://www.sohu.com/a/234776551_468635Brotli是一种全新的数据格式,可以提供比Zopfli(Zopfli压缩算法是一个新的兼容zlib(gzip,deflate)的压缩器,该压缩器压缩时需要更多的时间(大约慢100倍),但压缩率比zlib和其他兼容压缩器要好上5%。.zip是一种存档格式,通常使用......
  • IntelliJ IDEA java maven项目读取配置文件信息 java.util.ResourceBundle 方式
    一、在main目录下新建resources目录并将其设为资源文件目录  创建config.properties文件二、在pom.xml中添加下面代码 只这样打包后jar才能有配置文件<resources><resource><filtering>true</filtering><directory>src/main/......
  • ASP.NET Core 添加MIME类型
    原文链接:https://blog.csdn.net/qq_37413562/article/details/102945195ASP.NETCore添加MIME类型   FileExtensionContentTypeProviderFileExtensionContentTypeProvider和ASP.NET在web.config中添加不同,ASP.NETCore添加MIME类型需要通过FileExtensionContentTypeProvid......
  • ASP.NET Core如何使用HttpClient调用WebService
    原文链接:https://www.yisu.com/jc/691937.html我们使用VS创建一个ASP.NETCoreWebAPI项目,由于是使用HttpClient,首先在ConfigureServices方法中进行注入。public void ConfigureServices(IServiceCollection services){    // 注入HttpClient    services.AddHt......