TypechoJoeTheme

香草物语

统计
登录
用户名
密码
/
注册
用户名
邮箱
输入密码
确认密码

asp.net core读取配置文件公共方法

Laughing博主
2017-11-23
/
0 评论
/
1,251 阅读
/
345 个字
/
百度已收录
11/23
本文最后更新于2021年04月27日,已超过1241天没有更新。如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!

在asp.net core中,我么在startup.cs或者控制器中可以通过依赖注入或者其他方法很方便的读取配置文件的内容,但是在实际项目开发过程中,我们肯定不是这么简单的处理。一般情况下,我们都会通过一个公共的方法完成配置文件的读取,有时候还需要将配置文件映射到对应的实体类,方便其他人员调用。

这里我们通过将公共方法放到单独的类库,让后将配置文件转换成强类型的实体类
首先我们添加对应的类库项目然后添加nuget包
对于如何创建项目,这里不再赘述,主要说明需要引入的包如下:

Microsoft.Extensions.Configuration
Microsoft.Extensions.Configuration.FileExtensions

修改配置文件

修改自己的配置文件,加入相应的配置信息,比如我的配置文件如下

{  
  "Logging": {  
    "IncludeScopes": false,  
    "LogLevel": {  
      "Default": "Warning"  
    }  
  },  
  "SysConfig": {  
    "LoginProvider": "Cookie" //登陆提供者模式:Session、Cookie  
  }  
}

根据配置文件建立实体类

using System;  
using System.Collections.Generic;  
using System.Linq;  
using System.Text;  
using System.Threading.Tasks;  
  
namespace me.lisen.Bussiness.Entity  
{  
    public class SysConfig  
    {  
        public string LoginProvider { get; set; } //登陆提供者模式:Session、Cookie  
    }  
}

建立公共方法,获取配置文件

/* 
 * 获取配置文件 
 * @lisen 
 */  
using System;  
using System.Collections.Generic;  
using System.Linq;  
using System.Text;  
using System.Threading.Tasks;  
using System.Configuration;  
using Microsoft.Extensions.Configuration;  
using System.IO;  
using Microsoft.Extensions.Configuration.Json;  
using Microsoft.Extensions.DependencyInjection;  
using Microsoft.Extensions.Options;  
using me.lisen.Bussiness.Entity;  
  
namespace me.lisen.FrameworkCore.Util.config  
{  
    public static class ConfigManager  
    {  
        static IConfiguration config = null;  
        static ConfigManager()  
        {  
            string currentClassDir = AppContext.BaseDirectory;  
            if (config == null)  
            {  
                config = new ConfigurationBuilder()  
                    .SetBasePath(currentClassDir)  
                    .AddJsonFile("appsettings.json", false, true)  
                    .Add(new JsonConfigurationSource { Path = "appsettings.json", Optional = false, ReloadOnChange = true })  
                    .Build();  
            }  
        }  
  
        /// <summary>  
        /// 获取系统公共配置文件  
        /// </summary>  
        /// <typeparam name="T"></typeparam>  
        /// <param name="key"></param>  
        /// <returns></returns>  
        public static T GetValue<T>() where T : class, new()  
        {  
            T sysConfig = new T();  
            try  
            {  
                config.GetSection("SysConfig").Bind(sysConfig);  
            }  
            catch (Exception ex)  
            {  
                sysConfig = null;  
            }  
            return sysConfig;  
        }  
  
        /// <summary>  
        /// 获取单一节点配置文件  
        /// </summary>  
        /// <param name="key">节点,如果是多级节点需要按照:分隔的方式传递</param>  
        /// <returns></returns>  
        public static string GetValue(string key)  
        {  
            return config.GetSection(key).Value.ToString().Trim();  
        }  
    }  
}

界面调用

界面调用就比较简单了,在cshtml页面,直接调用公共方法,获取参数即可

DotNetCore
朗读
赞(1)
赞赏
感谢您的支持,我会继续努力哒!
版权属于:

香草物语

本文链接:

https://www.xiangcaowuyu.net/java/common-method-of-reading-configuration-file-from-asp-net-core.html(转载时请注明本文出处及文章链接)

评论 (0)
  1. 哈哈 闲逛
    Windows 10 · Google Chrome
    @李小末

    是啊 需要密码~无法看到密码

    2018-10-20 回复
  2. hahah 闲逛
    MacOS · Google Chrome

    好东西,谢谢

    2018-06-27 回复