Blog

Filter posts by Category Or Tag of the Blog section!

Using IConfiguration in Class library

Saturday, 16 June 2018

By using IConfiguration, you can access appsetting.json content in asp.net core. Using it in Startup is straightforward: 

public class Startup

    {

        public Startup(IConfiguration configuration)

        {

            Configuration = configuration;

        }



        public IConfiguration Configuration { get; }



        public void ConfigureServices(IServiceCollection services)

        {

        }



        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)

        {

//using Configuration

 app.ConfigureExceptionHandler(Configuration["Logs:Url"], Configuration["Logs:ExceptionIndex"]);

        }

    }


And in Controller level is similar by taking credit of HttpContext:

 

public class Controller : controllerBase

{          

        protected IActionResult Sample()

        {

            var services = HttpContext.RequestServices;

            var configuration = (IConfiguration)services.GetService(typeof(IConfiguration));

            var url = configuration["FtpInformation:FtpRead"];

            return ok();

        }

}


 

But if you want to use it in a class rather than Asp.net level. In a class library you can use the following code snippet: 

 

 public class CacheService : ICacheService

    {

        private static IConfiguration configuration;



        private static string Address { get { return configuration["CacheServer:Url"]; } }



        public CacheService()

        {

            var builder = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()).AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);

            configuration = builder.Build();

        }



        public async Task<object> GetAsync(object key)

        {

         //use address in the method

        }

} 


 

Cheers!

 

comments powered by Disqus