Согласно этой статье Контроллер должен иметь конструктор, который получает реализуемый интерфейс, а-ля:
public class DuckbillsController : ApiController
{
IDuckbillRepository _platypiRepository;
public DuckbillsController(IDuckbillRepository platypiRepository)
{
if (platypiRepository == null)
{
throw new ArgumentNullException("platypiRepository is null");
}
_platypiRepository = platypiRepository;
}
}
Но как называется этот конструктор? Расчет через клиент, вызывающий метод веб-API, содержащийся в этом классе, но как ему передается тип интерфейса? Или этого не должно происходить (конструктор явно не вызывается никем/ниоткуда)?
ОБНОВИТЬ
В канонических примерах перед объявлением интерфейса указано «private readonly», но это не обязательно для его компиляции. Есть ли компиляция, я имею в виду убедительную причину, по которой я добавляю «частное только для чтения»?