gpt4 book ai didi

c# - ASP.NET Core 3 - 在 services.AddSingelton(); 之后立即实例化一个单例;

转载 作者:行者123 更新时间:2023-12-02 00:08:06 25 4
gpt4 key购买 nike

如何在

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

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

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

//......
}

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

最佳答案

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

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

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

//...
}

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

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

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

关于c# - ASP.NET Core 3 - 在 services.AddSingelton<IMySingletone, MySingletone>(); 之后立即实例化一个单例;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59929044/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com