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