3366植物大战僵尸,北京车展车模争芳斗艳,bsmi认证
在netcore开发中,最常见的就是注入,比如想获取appsettings.json的内容,我们就需要去注入,然后在controller里面去获取,但是我们如果想要在service中使用appsettings.json的内容,这样就是一个问题,并且每个controller去注入也是非常麻烦的事情
下面的注入的(这种方法百度一下可以出来几百条相同的搜索结果。。。参见)
services.addoptions(); services.configure<appsettings>(configuration.getsection("appsettings"));
然后获取使用
我想要在service类库里面使用,这时该如何使用哪?
直接上代码:
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即可,不需要进行重复的、实现
有错误或者片面地方欢迎指正
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Blazor server side 自家的一些开源的, 实用型项目的进度之 CEF客户端
.NET IoC模式依赖反转(DIP)、控制反转(Ioc)、依赖注入(DI)
vue+.netcore可支持业务代码扩展的开发框架 VOL.Vue 2.0版本发布
网友评论