src/YL.Utils/Configs/ConfigUtil.cs

(开头部分) 4KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Configuration.Json;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.FileProviders;
using Microsoft.Extensions.Options;
using System;
using System.IO;

namespace YL.Utils.Configs
{
    public class ConfigUtil
    {
        private static IConfiguration _config;

        public static IConfiguration GetConfiguration
        {
            get
            {
                if (_config != null) return _config;
                var configBuilder =
                    new ConfigurationBuilder()
                    .SetBasePath(AppContext.BaseDirectory)
                    .Add(new JsonConfigurationSource()
                    {
                        Path = "appsettings.json",
                        ReloadOnChange = true,
                    });
                //var builder = new ConfigurationBuilder()
                //.SetBasePath(Directory.GetCurrentDirectory())
                //.AddJsonFile("appsettings.json");
                _config = configBuilder.Build();
                return _config;
            }
            set { _config = value; }
        }

        public static string GetConnectionString(string key)
        {
            return GetConfiguration?.GetConnectionString(key);
        }

        public static IConfigurationSection GetSection(string key)
        {
            return GetConfiguration?.GetSection(key);
        }

        public static T GetAppSettings<T>(string key, string configFileName = "appsettings.json", string basePath = "") where T : class, new()
        {
            //Microsoft.Extensions.Options.ConfigurationExtensions
            basePath = string.IsNullOrWhiteSpace(basePath)
               ? Directory.GetCurrentDirectory()
               : Path.Combine(Directory.GetCurrentDirectory(), basePath);
            var configuration = new ConfigurationBuilder().SetBasePath(basePath)
                .AddJsonFile(configFileName, false, true)
                .Build();
            var appconfig = new ServiceCollection()
                .AddOptions()
                .Configure<T>(configuration.GetSection(key))
                .BuildServiceProvider()
                .GetService<IOptions<T>>()
后面还有 50 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。