Я не слишком знаком с Ninject, но вы должны иметь возможность зарегистрировать провайдера в контейнере, чтобы иметь возможность разрешить HttpContextBase
. Таким образом, IFilesRepository
теперь может принимать HttpContextBase
в качестве аргумента конструктора, который будет введен контейнером с помощью провайдера при создании экземпляра IFilesRepository
.
.
Чтобы зарегистрировать провайдера (используя делегата для разрешения услуги),
Bind<HttpContextBase>().ToMethod(context => new HttpContextWrapper(HttpContext.Current));
Имейте в виду, однако, что стиль жизни IFilesRepository
, скорее всего, нужно будет изменить на стиль жизни «по веб-запросу», так как HttpContext.Current
создается для веб-запроса, поэтому вы не захотите держась за это в IFilesRepository
, у которого был более длинный образ жизни. Возможно, вы захотите абстрагироваться от функции «отображения путей», чтобы у вас был IFilesRepository
с более продолжительным образом жизни.