zoukankan      html  css  js  c++  java
  • .NET CORE 3.1配置文件读取方式

    1、背景知识点:

           IConfiguration : https://www.cnblogs.com/edison0621/p/10854215.html

          官方文档:https://docs.microsoft.com/zh-cn/dotnet/api/microsoft.extensions.configuration.iconfiguration?view=dotnet-plat-ext-3.1

    2、配置文件分析以及读取方式示例

    首先看配置文件,一般配置文件节点较少情况下,直接是采用以下这种通用读取配置的方式

    var Username = _configuration["Steam:Username"]

    对于节点较多的话以上方式就不是很优雅,下面就记录下 自定义读取配置文件 的方式 。

    示例:

    以控制台应用程序为例(net core api及asp net core 采用绑定配置模型的方式,涉及到注册服务此处不一一列举):

    配置文件帮助类  SteamConfigHelper

    public class SteamConfigHelper
        {
            private static IConfiguration _configuration;
    
            static SteamConfigHelper()
            {
                //在当前目录或者根目录中寻找appsettings.json文件
                var fileName = "appsettings.json";
    
                var directory = AppContext.BaseDirectory;
                directory = directory.Replace("\", "/");
    
                var filePath = $"{directory}/{fileName}";
                if (!File.Exists(filePath))
                {
                    var length = directory.IndexOf("/bin");
                    filePath = $"{directory.Substring(0, length)}/{fileName}";
                }
    
                var builder = new ConfigurationBuilder()
                    .AddJsonFile(filePath, false, true);
    
                _configuration = builder.Build();
            }
    
            public static SteamJson GetSteamJson() {
                SteamJson sj = new SteamJson();
                sj = _configuration.Get<SteamJson>();//此处为SteamJson类
                return sj;
            }
        }


    配置文件类 SteamJson:

    public class Steam
        {
            /// <summary>
            /// 
            /// </summary>
            public string Username { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public string Password { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public string WebAPIKey { get; set; }
        }
    
        public class SteamJson
        {
            /// <summary>
            /// 
            /// </summary>
            public string ConnectionString { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public Steam Steam { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public List<int> SteamAdmins { get; set; }
        }

    配置文件 appsettings.json:

    {
      "ConnectionString": "server=*****;port=****;userid=****;password=****;database=****;charset=utf8;pooling=true",
    
      "Steam": {
        "Username": "*****",
        "Password": "*****",
        "WebAPIKey": "******"
      },
    
      "SteamAdmins": [
        00000000000000001
      ]
    }

    调用方式:

    var config = SteamConfigHelper.GetSteamJson();
    var Username = config.Steam.Username;
    var Password = config.Steam.Password;
    var config = SteamConfigHelper.GetSteamJson();
    var Username = config.Steam.Username;
    var Password = config.Steam.Password;
     
  • 相关阅读:
    pyzabbix 接口使用
    lvs使用进阶
    lvs基础
    linux服务基础之nginx配置详解
    linux服务基础之编译安装nginx
    iptables (二) nat & tcp_wrapper
    iptables (一) 主机防火墙和网络防火墙
    rsyslog及loganalyzer
    linux基础之Mini Linux制作
    linux基础之磁盘管理与文件系统
  • 原文地址:https://www.cnblogs.com/souphm/p/12889761.html
Copyright © 2011-2022 走看看