ASP.NET Core类库项目中如何实现读取配置文件的详解


当前第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》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...