In C# and constructor dependency injection what is the difference between the first two constructors. Specifically what does the :this
in the first constructor signify. Is it just shorthand for the second constructor or something else?
private readonly IRepositoryOne _repositoryOne;
private readonly IRepositoryTwo _repositoryTwo;
private readonly IService _service;
private readonly ApplicationDbContext _context;
public MyContructor()
: this(new RepositoryOne(new ApplicationDbContext()),
new RepositoryTwo(new ApplicationDbContext())
new Service())
{
}
public MyContructor()
{
_context = new ApplicationDbContext();
_repositoryOne = new RepositoryOne(_context);
_repositoryTwo = new RepositoryTwo(_context);
_service = new Service();
}
public MyContructor(IRepositoryOne repositoryOne,
IRepositoryTwo repositoryTwo,
IService service)
{
_repositoryOne = repositoryOne;
_repositoryTwo = repositoryTwo;
_service = service;
}