My old code looks like this:
public static class DbHelper {
// One conection per request
public static
There are at least 3 options to store an object per-request in ASP.NET Core:
You could totally re-design that old code: use the build-in DI and register a Database
instance as scoped (per web-request) with the following factory method:
public void ConfigureServices(IServiceCollection services)
{
services.AddScoped((provider) =>
{
return new DatabaseWithMVCMiniProfiler("MainConnectionString");
});
}
Introduction to Dependency Injection in ASP.NET Core
.net Core Dependency Injection Lifetimes Explained
This collection is available from the start of an HttpRequest and is discarded at the end of each request.
Working with HttpContext.Items
Store a value per a current async context (a kind of [ThreadStatic]
with async support). This is how HttpContext
is actually stored: HttpContextAccessor.
What's the effect of AsyncLocal
ThreadStatic in asynchronous ASP.NET Web API