我应该在 Simple Injector 中使用 Singleton 注册吗?
Should I use Singleton registrations in Simple Injector?
在我的注册表中,我将很多东西注册为 Singleton
。
我这样做是因为它们都是线程安全的并且没有状态。因此,内存中的一个实例就可以了。
我也在为需要 context/state 的类型使用 AsyncScoped
生活方式,但与我拥有的单身注册数量相比,它们很少而且相差甚远。
将线程安全的无状态类型注册为单例有什么问题吗?
这其实是一个很难回答的问题。有两个通用的 DI Composition Models 可以用来构建依赖图:
两种模型各有利弊,但只有当您整体应用环境合成模型时,您才能将您的组件注册为单例。
我开始写关于这两个模型的博客 here。
在我的注册表中,我将很多东西注册为 Singleton
。
我这样做是因为它们都是线程安全的并且没有状态。因此,内存中的一个实例就可以了。
我也在为需要 context/state 的类型使用 AsyncScoped
生活方式,但与我拥有的单身注册数量相比,它们很少而且相差甚远。
将线程安全的无状态类型注册为单例有什么问题吗?
这其实是一个很难回答的问题。有两个通用的 DI Composition Models 可以用来构建依赖图:
两种模型各有利弊,但只有当您整体应用环境合成模型时,您才能将您的组件注册为单例。
我开始写关于这两个模型的博客 here。