In this article, we are going to explain how to access the configuration when the application is starting and how to retrieve services like IConfiguration and IWebHostEnvironment in this new setup.

To download the source code for this article, you can visit our GitHub repository.

Let’s start.

Farewell to Startup.cs

In earlier versions of .NET, developers utilized the Startup.cs class to configure services and middleware. However, with the arrival of .NET 6, the traditional Startup.cs class is no longer required, and its days are numbered. Instead, we embrace the WebApplicationBuilder class, which offers a more straightforward and flexible configuration approach.

Support Code Maze on Patreon to get rid of ads and get the best discounts on our products!
Become a patron at Patreon!

Introducing WebApplicationBuilder

The WebApplicationBuilder is a new way to set up and configure the ASP.NET Core web application in .NET 6 and later. It provides an elegant and concise solution for developers to specify services, middleware, and other configurations.

Access Configuration When Applications Starts

In the past, within the Startup.cs class, developers used to receive the IConfiguration and IWebHostEnvironment objects via constructor injection. However, in the new WebApplicationBuilder approach, these objects are accessible directly from the builder and the application.

Here’s how we can access configuration services in the new .NET 6 setup:

var builder = WebApplication.CreateBuilder(args);

// Accessing IConfiguration and IWebHostEnvironment from the builder
IConfiguration configuration = builder.Configuration;
IWebHostEnvironment environment = builder.Environment;

builder.Services.AddControllers();
...

app.Run();

Here, we demonstrate how to access IConfiguration and IWebHostEnvironment from the WebApplicationBuilder. The builder provides direct access to these objects, making configuration tasks more straightforward.

Conclusion

The transition from Startup.cs to WebApplicationBuilder in .NET 6 represents a shift towards a more modern and efficient approach to configuring ASP.NET Core web applications. Embracing this change allows developers to access IConfiguration and IWebHostEnvironment directly from the builder, streamlining the configuration process.

By leveraging the power of WebApplicationBuilder, developers can take full advantage of the enhancements introduced in .NET 6, ensuring their applications are well-prepared for the future.

Liked it? Take a second to support Code Maze on Patreon and get the ad free reading experience!
Become a patron at Patreon!