在ASP.NET Core 2.1中使用依赖注入,首先需要在Startup类的ConfigureServices方法中进行配置。
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
// 注册服务的依赖关系
services.AddScoped();
}
上述代码中,我们调用了AddScoped
方法来注册IMyService
和MyService
之间的依赖关系。AddScoped
方法表示每个HTTP请求都会创建一个新的MyService
实例。
然后,我们可以在控制器中使用依赖注入来获取服务的实例。
public class HomeController : Controller
{
private readonly IMyService _myService;
public HomeController(IMyService myService)
{
_myService = myService;
}
public IActionResult Index()
{
// 使用_myService对象
return View();
}
}
在控制器的构造函数中,我们接收一个IMyService
类型的参数,ASP.NET Core会自动将MyService
的实例传递给这个参数。
这样,在控制器的其他方法中,就可以使用_myService
对象来调用MyService
的方法。
注意,为了使依赖注入正常工作,需要在Startup类的Configure方法中添加app.UseMvc()
来启用MVC功能。
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
// ...
app.UseMvc();
}
这样,ASP.NET Core就会在每个请求到达时,自动创建控制器并注入相关的服务。