当前第2页 返回上一页
所以我们从这里可以看出添加JSON文件的方法除了通过扩展方法来实现外还有直接实例化JsonConfigurationSource来实现,如下:
1 2 3 4 5 | IConfiguration config = new ConfigurationBuilder()
.SetBasePath(currentClassDir)
.AddJsonFile( "appsettings.json" , false , true )
.Add( new JsonConfigurationSource { Path = "appsettings.json" , Optional = false , ReloadOnChange = true })
.Build();
|
上述添加JSON文件皆可,我发现添加JSON文件必须设置JSON文件所在的目录即必须首先要设置SetBasePath方法,否则会报如下错误:

我们搞个测试JSON文件放在当前项目(StudyEFCore.Data)中如下:

最终读取类库项目JSON配置文件,将其封装起来就成了如下这个样子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | public class JsonConfigurationHelper
{
public T GetAppSettings<T>( string key) where T : class , new ()
{
var baseDir = AppContext.BaseDirectory;
var indexSrc = baseDir.IndexOf( "src" );
var subToSrc = baseDir.Substring(0, indexSrc);
var currentClassDir = subToSrc + "src" + Path.DirectorySeparatorChar + "StutdyEFCore.Data" ;
IConfiguration config = new ConfigurationBuilder()
.SetBasePath(currentClassDir)
.Add( new JsonConfigurationSource { Path = "appsettings.json" , Optional = false , ReloadOnChange = true })
.Build();
var appconfig = new ServiceCollection()
.AddOptions()
.Configure<T>(config.GetSection(key))
.BuildServiceProvider()
.GetService<IOptions<T>>()
.Value;
return appconfig;
}
}
|
由上有一个还未解决的问题就是如何得到当前类库项目的路径,没有想到一个好的法子,不知看到此文的你有何高见。简短的调用则是如下:
1 2 3 4 | var config = new JsonConfigurationHelper();
var person = config.GetAppSettings<Person>( "JeffckySettings" );
var name = person.Name;
var age = person.Age;
|
结果如下:

我们将其类修改为ConfigurationManager,然后将其GetAppSettings方法定义为静态方法,最后如下调用是不是满足了在.net core之前读取web.config中配置数据的问题。哈哈哈:
1 | var person = ConfigurationManager.GetAppSettings<Person>( "JeffckySettings" );
|
总结
以上就是ASP.NET Core类库项目中如何实现读取配置文件的详解的详细内容!
返回前面的内容
相关阅读 >>
asp.net中时间格式化的几种方法
asp.net core实例详解四(project.json文件)
asp.net core mvc应用程度中如何读取当前url请求参数(querystring)的值?
webclient上传图片到远程服务的代码示例
asp.net是什么意思?asp.net框架的特性有哪些
分享asp.net mvc4如何实现通过id更新表单内容的实例分析
asp.net页面事件加载的顺序是什么样的
分享asp.net学习笔记(11)webpages php
asp.net 获取 客户端ip
学习asp.net core 2遇到的问题分享
更多相关阅读请进入《asp.net》频道 >>
清华大学出版社
作者:[美]克里斯琴·内格尔(Christian Nagel)著。出版时间:2019年3月。
转载请注明出处:木庄网络博客 » ASP.NET Core类库项目中如何实现读取配置文件的详解