在netcore开发中,最多见的就是注入,好比想获取appsettings.json的内容,咱们就须要去注入,而后在controller里面去获取,可是咱们若是想要在service中使用appsettings.json的内容,这样就是一个问题,而且每一个controller去注入也是很是麻烦的事情html
下面的注入的(这种方法百度一下能够出来几百条相同的搜索结果。。。参见http://www.javashuo.com/article/p-dbyhkrdu-bg.html)json
services.AddOptions(); services.Configure<AppSettings>(Configuration.GetSection("AppSettings"));
而后获取使用app
我想要在service类库里面使用,这时该如何使用哪?ide
直接上代码:ui
public class AppSettings { public string TestString { get; set; } public string ConfigVersion { get; set; } public string connectionString { get; set; } public string RedisExchangeHosts { get; set; } public string UploadPath { get; set; } }
public Startup(IConfiguration configuration, ILoggerFactory factory, IHostingEnvironment env) { EnvironmentName = env.EnvironmentName; Configuration = configuration; // 将内置的日志组件设置为 NHibernate 的日志组件 var builder = new ConfigurationBuilder() .SetBasePath(env.ContentRootPath) .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true) .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)//增长环境配置文件,新建项目默认有 .AddEnvironmentVariables(); new AppSettingProvider().Initial(configuration); Configuration = builder.Build(); }
public class AppSettingProvider { private static AppSettings _myappSettings; public static AppSettings _appSettings { get { return _myappSettings; } } public void Initial(IConfiguration configuration) { _myappSettings = new AppSettings() { ConfigVersion = configuration["AppSettings:ConfigVersion"], connectionString = configuration["AppSettings:connectionString"], TestString = configuration["AppSettings:TestString"], RedisExchangeHosts = configuration["AppSettings:RedisExchangeHosts"], UploadPath = configuration["AppSettings:UploadPath"] }; } }
这样,咱们在要使用的时候只须要AppSettingProvider._appSettings.xxxx便可,不须要进行重复的、实现idea
有错误或者片面地方欢迎指正spa