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) {
//...
}
这样任何已注册的依赖项都将被解析和注入。
如何在
之后立即实例化单例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) {
//...
}
这样任何已注册的依赖项都将被解析和注入。