zoukankan      html  css  js  c++  java
  • .Net Core读取自定义配置文件

    比如有个自定义json配置文件:SettingsBuiltin.json

    {  
      "OIDC": {
        "Host": "http://localhost:8020",
        "Https": false,
        "ClientId": "Workspace",
        "ClientSecret": "bf88b9d30eca4f84be20b7744b2b3573",
        "Scopes": [
          "openid",
          "profile",
          "security",
          "org_profile",
          "ad_profile",
          "iam_profile",
          "access_oaplus"
        ],
        "ClaimMaps": [
          {
            "ClaimType": "displayName",
            "JsonKey": "display_name"
          },
          {
            "ClaimType": "nickname",
            "JsonKey": "nickname"
          }
        ]
      }
    }

    Program.cs

    public static IWebHostBuilder CreateWebHostBuilder(string[] args, CancellationTokenSource cancellation) =>
    WebHost.CreateDefaultBuilder(args)
    .ConfigureAppConfiguration((context, config) =>
    {
      config.AddJsonFile("settings/Builtin.json", false, false);
    })
    .UseStartup<Startup>();

    Startup.cs

    public void ConfigureServices(IServiceCollection services)
    {
        services.Configure<OpenIdConnectOption>(Configuration.GetSection("OIDC"));

        var provider = services.BuildServiceProvider();

    var oidcOption = provider.GetRequiredService<IOptions<OpenIdConnectOption>>().Value;        
    }
    OpenIdConnectOption 类的结构如下:
        public class OpenIdConnectOption
        {
            public string Host { get; set; }
            public bool Https { get; set; }
            public string ClientId { get; set; }
            public string ClientSecret { get; set; }
            public string[] Scopes { get; set; }
            public ClaimMap[] ClaimMaps { get; set; }
        }
    
        public class ClaimMap
        {
            public string ClaimType { get; set; }
            public string JsonKey { get; set; }
        }

    另外分享一个读取默认配置的工具类

    using Microsoft.Extensions.Configuration;
    using System.IO;
    
    namespace EIP.Core.DataAccess
    {
        public static class AppsettingsConfig
        {
            public static IConfiguration Configuration { get; set; }
    
            static AppsettingsConfig()
            {
                Configuration = new ConfigurationBuilder()
                       .SetBasePath(Directory.GetCurrentDirectory())
                       .AddJsonFile("appsettings.json", true, reloadOnChange: true).Build();
            }
    
            public static string GetConfigValue(string key)
            {
                return Configuration[key];
            }
        }
    }

    使用方法:

    var setting = AppsettingsConfig.GetConfigValue("Token:Secret")
  • 相关阅读:
    Vscode开发工具中的Simple React Snippets插件,对React开发有哪些便捷
    函数防抖和节流
    4.怎么样用CSS实现一个loading效果
    3.常见清除浮动的
    2.css处理各种溢出
    1. css画三角形
    2.javascript中call()和apply()区别
    1.js的继承的实现方法
    css、js小技巧
    JS函数声明和函数表达式的关系
  • 原文地址:https://www.cnblogs.com/xtjatswc/p/12221004.html
Copyright © 2011-2022 走看看