【问题标题】:Access appsettings.json in class library访问类库中的 appsettings.json
【发布时间】:2017-10-17 15:19:51
【问题描述】:

我在类库中搜索访问 appsettings.json 的解决方案。我有一个依赖于类库的 ASP.NET Core Web 应用程序。在这个类库中,我必须从 appsettings.json 中读取一些属性。

有什么办法吗?

【问题讨论】:

    标签: asp.net-core-mvc .net-core


    【解决方案1】:

    你应该使用选项

    使用起来相当简单。检查这篇文章。很好解释Src

    1/ 创建你的 Options 类

    namespace UsingOptions.Models
    {
        public class MyOptions
        {
            public MyOptions()
            {
                // Set default value.
                Option1 = "value1_from_ctor";
            }
            public string Option1 { get; set; }
            public int Option2 { get; set; } = 5;
        }
    }
    

    2/ 在 ConfigureServices 方法中配置(在 startup.cs 中)

    public void ConfigureServices(IServiceCollection services)
    {
        // Adds services required for using options.
        services.AddOptions();
    
        // Register the IConfiguration instance which MyOptions binds against.
        **services.Configure<MyOptions>(Configuration);**
    
        // Add framework services.
        services.AddMvc();
    }
    

    3/ 将 IOptions 注入你的控制器

    public class HomeController : Controller
    {
        private readonly MyOptions _options;
    
        public HomeController(IOptions<MyOptions> optionsAccessor)
        {
            _options = optionsAccessor.Value;
        }
    
        public IActionResult Index()
        {
            var option1 = _options.Option1;
            var option2 = _options.Option2;
            return Content($"option1 = {option1}, option2 = {option2}");
        }
    }
    

    【讨论】:

    • 您的代码显示了如何直接从 API 控制器使用 appsettings.json 值。但问题是关于在类库中访问这些值。
    • 然后你在你的班级里注入 IOptions ?你如何实例化你的类?
    • 对,不用控制器从依赖注入中获取选项,只需修改库中的类即可。
    • 修改 Web 应用程序项目对我来说不是一个选项。是否有可能获得 appsettings.json 而无需在 Web 应用程序项目中实现一些代码?如果我可以从类库中获取我的应用程序的 wwwroot 路径,我认为我的问题也可以解决。有什么办法吗?
    猜你喜欢
    • 2021-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-16
    • 1970-01-01
    • 1970-01-01
    • 2020-09-04
    • 2021-09-03
    相关资源
    最近更新 更多