Microsoft.Extensions.DependencyInjection是否使用单子概念?

问题描述 投票:0回答:1

在我的项目的启动文件中,我使用了Microsoft.Extensions.DependencyInjection,这样当需要一个实例时,就会由依赖注入处理。

services.AddTransient<IRepository<Product>, ProductRepository>();
services.AddTransient<IRepository<Order>, OrderRepository>();

是否有办法控制是否应该返回一个新的实例或相同的实例(单体)?

c# dependency-injection inversion-of-control
1个回答
0
投票

对于单体,你可以使用。(每个应用程序一生只需要一个实例)

services.AddSingleton(IRepository<Product>, ProductRepository>()

另一个选择是注册为scoped。(每个请求一个实例)

services.AddScoped(IRepository<Product>, ProductRepository>()
© www.soinside.com 2019 - 2024. All rights reserved.