ASP.NET Core—access Configuration from static class

后端 未结 13 2013
我在风中等你
我在风中等你 2021-02-01 00:27

I want a simple static class that accesses the Configuration object. All the config info is already read in from the appsettings.json file in the Startup class. I just need an e

13条回答
  •  醉酒成梦
    2021-02-01 00:44

    Here is a way to obtain the configuration values from a NET.Core page without having to reference these statically but then still being able to pass them to other static functions called from the non-static class.

    At the top of your non-static class add this:

    private readonly IConfiguration _configuration;

    Then in the constructor function bring in the existing configuration as input to the function: IConfiguration configuration

    Then assign the configuration to your read only variable inside the constructor function: _configuration = configuration;

    Here is an example of what it should look like:

    public class IndexModel : PageModel
    {
        private readonly IConfiguration _configuration;
    
        public IndexModel(IConfiguration configuration)
        {
            _configuration = configuration;
        }
    }
    

    After this you can reference the configuration in any function in the class by referencing _configuration and can even then pass this on to other static functions that you call from other classes:

    public async Task OnGetAsync()
    {
        AnotherClass.SomeFunction(_configuration);
    }
    

    Then in the called static class I can make use of the configuration values:

    public static string SomeFunction(IConfiguration configuration)
    {
        string SomeValue = configuration.GetSection("SomeSectionOfConfig")["SomeValue"];
    }
    
    

    I have a class that calls some stored procedures for viewing and amending data and passes parameter values from appsettings.json using this approach.

提交回复
热议问题