1. 直接读取配置

StartUp类中使用 Configuration["ConnectionString"], Configuration["AliyunAkSk:Ak"]

如果在Service中想读取配置, 就先注入IConfiguration configuration

 

2. 配置强类型化读取

现有配置节点如下

"OssSettings": {
     "ConfigItems": [
       {
         "Name": "ali_",
         "Domain": "img.",
         "OfficalDomain": "img.",
         "AccessId": "",
         "AccessKey": "",
         "EndPoint": "
http://",
         "BucketName": "",
         "Platform": "ali"
       }
     ],
     "CurrentOssName": "al",
     "TemplateOssName": ""
   }

定义一个接口, 并实现这个接口.

public interface IOssSettings
    {
         IEnumerable<OssConfig> ConfigItems { get;  }
         string CurrentOssName { get;  }
         string TemplateOssName { get; }
    }

然后在StartUp的ConfigureServices中添加注入

services.AddSingleton<IOssSettings>((os) =>
             {
                 var section = Configuration.GetSection("OssSettings");
                 return section.Get<OssSettings>();
             });

之后就可以在任何地方愉快滴使用 IOssSettings来注入使用了

 

3. 外置配置文件

public class Program
    {
        public static void Main(string[] args)
        { 

            CreateWebHostBuilder(args).Build().Run();
        }

        private static IConfiguration configuration {
            get
            {
                var configuration = 
                    new ConfigurationBuilder()
                                        .SetBasePath(Directory.GetCurrentDirectory())
                                        .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)

                                        // custom config file
                                        .AddJsonFile("GlobalSettings.json", optional: false, reloadOnChange: false)
                                        .Build();
                return configuration;
            }
        }

        public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
            WebHost.CreateDefaultBuilder(args) 
            .UseConfiguration(configuration)
                .UseStartup<Startup>(); 
    }

新建一个类GlobalSettings
services.Configure<GlobalSettings>(Configuration);

 需要使用Options注入使用, 见 https://www.cnblogs.com/qinzb/p/9297143.html

然后就可以使用上面介绍的方式来注入使用了

相关文章:

  • 2021-12-16
  • 2021-07-12
  • 2021-10-08
  • 2018-05-31
  • 2022-01-05
  • 2022-12-23
  • 2021-10-05
猜你喜欢
  • 2021-12-02
  • 2022-01-20
  • 2022-03-08
  • 2018-06-29
  • 2021-07-04
  • 2019-12-06
  • 2021-09-28
相关资源
相似解决方案