Я пытаюсь зарегистрировать некоторые службы на базовом контроллере, которые будут доступны для каждого запроса.Служба всегда имеет значение null, используя lightinject
public interface IInstagramApiService
{
}
public interface IApiServiceConfiguration
{
string CacheKeyPrefix { get; }
}
Тогда у меня есть какие-то конкретные реализации этих
public class InstagramApiService : IInstagramApiService
{
IApiServiceConfiguration ApiServiceConfiguration { get; set; }
public InstagramApiService(IApiServiceConfiguration apiServiceConfiguration)
{
ApiServiceConfiguration = apiServiceConfiguration;
}
}
public class ApiServiceConfiguration : IApiServiceConfiguration
{
public string CacheKeyPrefix
{
get;
set;
}
}
Тогда у меня есть базовый контроллер, который я хочу, чтобы зарегистрировать эту услугу тоже;
public class BaseController : Controller
{
IInstagramApiService InstagramApiService { get; set; }
}
Итак, в моем приложении запускается эта инициализация;
var instagramApiServiceConfiguration = new ApiServiceConfiguration() {
CacheKeyPrefix = "The Cache Key Prefix",
};
container.Register<IInstagramApiService>((factory) => new InstagramApiService(instagramApiServiceConfiguration), new PerRequestLifeTime());
Но когда я проверяю InstagramApiService
на BaseController
это всегда null
. Каков правильный способ установить это, поэтому я всегда буду иметь InstagramApiService
, готовый к использованию в моих контроллерах?