实际在ASP.NET Core的ConfigureServices阶段读取AppSettings [英] Actually read AppSettings in ConfigureServices phase in ASP.NET Core

查看:399
本文介绍了实际在ASP.NET Core的ConfigureServices阶段读取AppSettings的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要在ASP.NET Core 1.0 Web应用程序的ConfigureServices方法中设置一些依赖项(服务).

I need to setup a few dependencies (services) in the ConfigureServices method in an ASP.NET Core 1.0 web application.

问题是,基于新的JSON配置,我需要设置服务或其他服务.

The issue is that based on the new JSON configuration I need to setup a service or another.

在应用生存期的ConfigureServices阶段,我似乎无法真正读取设置:

I can't seem to actually read the settings in the ConfigureServices phase of the app lifetime:

public void ConfigureServices(IServiceCollection services)
{
    var section = Configuration.GetSection("MySettings"); // this does not actually hold the settings
    services.Configure<MySettingsClass>(section); // this is a setup instruction, I can't actually get a MySettingsClass instance with the settings
    // ...
    // set up services
    services.AddSingleton(typeof(ISomething), typeof(ConcreteSomething));
}

我实际上需要阅读该部分,并确定要为ISomething注册的内容(可能与ConcreteSomething不同).

I would need to actually read that section and decide what to register for ISomething (maybe a different type than ConcreteSomething).

推荐答案

这是从appSettings.json方法中直接从appSettings.json获取类型设置的方法:

That is the way you can get the typed settings from appSettings.json right in ConfigureServices method:

public class Startup
{
    public Startup(IConfiguration configuration)
    {
        Configuration = configuration;
    }

    public IConfiguration Configuration { get; }

    public void ConfigureServices(IServiceCollection services)
    {
        services.Configure<MySettings>(Configuration.GetSection(nameof(MySettings)));
        services.AddSingleton(Configuration);

        // ...

        var settings = Configuration.GetSection(nameof(MySettings)).Get<MySettings>();
        int maxNumberOfSomething = settings.MaxNumberOfSomething;

        // ...
    }

    // ...
}

这篇关于实际在ASP.NET Core的ConfigureServices阶段读取AppSettings的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆