在我的项目的启动文件中,我使用了Microsoft.Extensions.DependencyInjection,这样当需要一个实例时,就会由依赖注入处理。
services.AddTransient<IRepository<Product>, ProductRepository>();
services.AddTransient<IRepository<Order>, OrderRepository>();
是否有办法控制是否应该返回一个新的实例或相同的实例(单体)?
对于单体,你可以使用。(每个应用程序一生只需要一个实例)
services.AddSingleton(IRepository<Product>, ProductRepository>()
另一个选择是注册为scoped。(每个请求一个实例)
services.AddScoped(IRepository<Product>, ProductRepository>()