Disponible de forma nativa en .NET Core.
Implementación DI
interfaz de la cual se hace la DI
public interface IVehiculoService
{
Vehiculo GetVehiculo(int id);
string Arrancar();
}
implementación de la interfaz
public class VehiculoService: IVehiculoService
{
public Vehiculo GetVehiculo(int id)
{
// consulta y retornar de BBDD
return new Vehiculo();
}
public string Arrancar()
{
return "Arrancando";
}
}
service donde se hace la DI
public class TallerService
{
private readonly IVehiculoService _vehiculoService;
public TallerService(IVehiculoService vehiculoService)
{
_vehiculoService = vehiculoService;
}
public string Reparar()
{
return _vehiculoService.Arrancar();
}
}
Configuración inyector DI
Hay que registrar los servicios en un startup.cs
. Hay 3 tipos:
- transient: dependencies are created each time they’re called.
- scoped: lives while request is available.
- singleton: only created once for whole project.
public class Startup
{
public IConfiguration Configuration { get; }
public Startup(IConfiguration configuration)
{
Configuration = configuration
}
public void ConfigureServices(IServiceCollection services)
{
// add dependencies here
services.AddTransient<IVehiculoService, VehiculoService>();
}
}