我在代码中使用了 IwebHostEnvironment。 IWebHostEnvironment 是一个接口,用于提供有关托管的信息并可以从中获取有关路径的数据
为什么我可以从中获取一个实例并注入它,就像注入 _db 一样,而无需像注册 Db 上下文那样在 ConfigureServices 方法中注册它?
public class ProductController : Controller
{
private readonly App_DbContext _db;
private readonly IWebHostEnvironment _webHostEnvironment;
public ProductController(App_DbContext db,IWebHostEnvironment webHostEnvironment)
{
_db = db;
_webHostEnvironment = webHostEnvironment;
}
public IActionResult Index()
{
IEnumerable<Product> products= _db.Product;
return View(products);
}
}
这是配置服务方法
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<App_DbContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
services.AddControllersWithViews();
}