Por quê do extrair uma interface do DataService?
Por quê do extrair uma interface do DataService?
Olá, Murilo
O uso da interface é necessário para usarmos o sistema de injeção de dependência do ASP.NET Core MVC.
No arquivo Startup.cs, configuramos o mapeamento entre a interface IDataService
e o tipo concreto (classe) DataService
. Assim, sempre que um objeto precisar ser construído automaticamente pelo ASP.NET Core MVC, e o construtor desse objeto contiver a interface IDataService
, o framework saberá qual instância de classe ele precisará criar (DataService
) para fornecer a esse novo objeto.
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
.
.
.
services.AddTransient<IDataService, DataService>();
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory,
IServiceProvider serviceProvider)
{
.
.
.
IDataService dataService = serviceProvider
.GetService<IDataService>();
.
.
.
}