ASP.NET Core 3——在services.AddSingelton<IMySingletone, MySingletone>()之后立即实例化一个单例;

ASP.NET Core 3 - immediately instantiate a singleton after services.AddSingelton<IMySingletone, MySingletone>();

如何在

之后立即实例化单例
services.AddSingelton<IMySingleton, MySingleton>()

我现在正在使用这个肮脏的解决方法(在每个请求中调用 GetService):

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    app.ApplicationServices.GetService<IFirebaseApp_ForInjection>();

    //......
}

我知道我的单例应该在构造函数注入中需要时实例化,但我不需要将它注入任何构造函数。

如果目标单例没有显式注入的依赖项,则在将其添加到服务集合之前没有什么可以阻止它被实例化

public void ConfigureServices(IServiceCollection services) {
    //...

    IMySingleton instance = new MySingleton();
    services.AddSingelton(instance)

    //...
}

如果存在依赖关系,则另一个选项将类似于当前显示的解决方法,将其注入启动 Configure 方法

public void Configure(IApplicationBuilder app, IWebHostEnvironment env, IMySingleton instance) {
    //...
}

这样任何已注册的依赖项都将被解析和注入。