Inject IConfiguration into Program.cs (Console App) in .NET Core 3.0
Asked Answered
T

1

9

I am trying to inject IConfiguration (Microsoft.Extensions.Configuration package) into Program.cs and don't know if that is possible and therefore obviously don't know how to do it, if possible.

I've done it in the Startup class in other projects, but there I just do a simple dependency injection, which I don't find to be done the same way in a console application.

The reason for it is, that I need to access some key values in the appsettings, in regards to access my database with the SqlConnection class (System.Data.SqlClient).

Normally, I just add it like this inside Startup.cs:

....
services.AddScoped(mysql => new SqlConnection($"and here goes my variables from appsettings..");
....

Do I need to use the Options pattern or is there a more simple way?

Tipper answered 26/3, 2020 at 13:9 Comment(1)
You would need to build the configuration yourself. Show your Program class and lets see if we can help.Arielariela
A
14

You would need to build the configuration yourself.

For example

static void  Main(string[] args) {

    var builder = new ConfigurationBuilder()
        //.SetBasePath("path here") //<--You would need to set the path
        .AddJsonFile("appsettings.json"); //or what ever file you have the settings

    IConfiguration configuration = builder.Build();

    //...use configuration as needed

}
Arielariela answered 26/3, 2020 at 13:29 Comment(1)
Of course... And adding the AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true) will in my case be the final touch.Tipper

© 2022 - 2024 — McMap. All rights reserved.